主题
概述
Django 是 Python 生态中最成熟的 Web 框架,遵循「 batteries included 」理念,内置 ORM、管理后台、用户认证、表单处理等开箱即用的功能。结合 Django REST Framework(DRF),可以快速构建 RESTful API。
为什么选择 Django?
- 功能齐全:自带 ORM、管理后台、认证系统等
- 安全可靠:内置 CSRF、XSS、SQL 注入等安全防护
- 管理后台:开箱即用的 Admin 管理界面
- 大型项目:适合中大型项目,社区活跃,文档完善
技术特性
| 特性 | 说明 |
|---|---|
| 编程语言 | Python 3.11+ |
| 架构模式 | MTV (Model-Template-View) / DRF API |
| ORM 支持 | Django ORM(内置) |
| 数据库 | PostgreSQL, MySQL, SQLite |
| 性能评分 | ★★★☆☆ |
| 学习曲线 | 中等(需理解 Django 概念) |
| API 文档 | DRF + drf-spectacular (可选) |
| 测试支持 | pytest, unittest |
生成的项目结构
ThesisAI 生成的 Django 项目遵循官方推荐的 app 分层结构:
backend/
├── manage.py # Django 管理脚本(核心入口)
├── requirements.txt # 依赖列表
├── config/ # 项目配置目录
│ ├── __init__.py
│ ├── settings.py # 主配置文件
│ ├── urls.py # 根 URL 路由
│ ├── wsgi.py # WSGI 入口
│ └── asgi.py # ASGI 入口
├── apps/ # 应用模块
│ ├── users/ # 用户应用
│ │ ├── models.py # 数据模型
│ │ ├── views.py # 视图函数/类
│ │ ├── serializers.py # DRF 序列化器
│ │ ├── urls.py # 应用路由
│ │ └── admin.py # Admin 注册
│ └── [业务应用]/ # 根据需求生成
├── static/ # 静态文件
│ ├── css/
│ └── js/
├── templates/ # 模板文件(如有前端页面)
├── tests/ # 测试文件
├── .env.example # 环境变量示例
└── Dockerfile开发环境
环境要求
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Python | >= 3.11 | 推荐 3.11+ |
| pip | 最新版 | 包管理器 |
创建虚拟环境
macOS / Linux:
bash
cd backend
python3 -m venv venv
source venv/bin/activateWindows:
cmd
cd backend
python -m venv venv
venv\Scripts\activate关于虚拟环境
虚拟环境可以隔离项目依赖,避免不同项目之间的冲突。每次运行项目前都需要激活虚拟环境。终端前面应该显示 (venv) 表示已激活。
安装依赖
bash
pip install -r requirements.txt使用国内镜像加速:
bash
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple环境变量
bash
cp .env.example .env| 变量名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
DEBUG | 调试模式 | 否 | True |
SECRET_KEY | Django 密钥 | 是 | - |
DATABASE_URL | 数据库连接 | 是 | - |
ALLOWED_HOSTS | 允许的主机 | 否 | localhost,127.0.0.1 |
数据库迁移
bash
python manage.py migrate如果需要创建超级用户(管理员):
bash
python manage.py createsuperuser启动开发服务器
bash
python manage.py runserver指定端口:
bash
python manage.py runserver 0.0.0.0:8000:::success 服务启动成功
- API 地址:
http://localhost:8000 - 管理后台:
http://localhost:8000/admin - API 文档:
http://localhost:8000/api/docs(如果配置了 DRF)
如果看到 Starting development server at http://127.0.0.1:8000/ 的消息,说明服务启动成功! :::
Django Admin 管理后台
Django 自带强大的管理后台,访问 http://localhost:8000/admin 即可使用。
使用 createsuperuser 创建管理员账号后登录,可以:
- 管理数据模型(增删改查)
- 查看用户列表和权限
- 管理应用配置
常用命令
| 命令 | 说明 |
|---|---|
python manage.py runserver | 启动开发服务器 |
python manage.py runserver 0.0.0.0:8000 | 指定端口启动 |
python manage.py migrate | 执行数据库迁移 |
python manage.py makemigrations | 创建迁移文件 |
python manage.py createsuperuser | 创建超级用户 |
python manage.py shell | 进入 Django Shell |
python manage.py collectstatic | 收集静态文件 |
python manage.py startapp <name> | 创建新应用 |
常见问题
虚拟环境未激活
如果提示找不到 Django,确保虚拟环境已激活。终端前面应该显示 (venv)。
数据库迁移错误
- 确保数据库服务已启动
- 检查
DATABASE_URL配置 - 尝试重新生成迁移文件:
bash
python manage.py makemigrations
python manage.py migratepip 安装很慢
使用国内镜像源:
bash
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple静态文件 404
开发环境下,确保 DEBUG=True。生产环境需要运行:
bash
python manage.py collectstatic