Django API 项目
这是一个使用Django和Django REST Framework构建的API项目。
项目结构
├── api/ # Django项目主目录
├── config/ # 配置文件目录
│ ├── settings/ # 多环境配置
│ │ ├── base.py # 基础配置
│ │ ├── development.py # 开发环境配置
│ │ └── production.py # 生产环境配置
│ └── urls/ # URL配置目录
├── docs/ # 项目文档
├── logs/ # 日志文件
├── media/ # 用户上传文件
├── middleware/ # 自定义中间件
├── modules/ # 应用模块
│ ├── hello/ # 示例应用
│ └── users/ # 用户应用
├── scripts/ # 管理脚本
│ └── fixtures/ # 初始数据文件
├── static/ # 静态文件
├── staticfiles/ # 收集后的静态文件(生产环境)
├── templates/ # HTML模板
├── utils/ # 工具函数
├── .env.example # 环境变量示例
├── .gitignore # Git忽略文件
├── manage.py # Django管理脚本
└── requirements.txt # 项目依赖快速开始
1. 克隆项目
bash
git clone <repository-url>
cd demo-api-django2. 创建虚拟环境
bash
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows3. 安装依赖
bash
pip install -r requirements.txt4. 配置环境变量
复制环境变量示例文件并根据需要修改:
bash
cp .env.example .env
# 编辑.env文件,设置数据库连接等信息5. 运行数据库迁移
bash
python manage.py migrate6. 初始化数据(可选)
bash
python scripts/init_data.py7. 启动开发服务器
bash
python manage.py runserver8. 访问API文档
开发环境下可以访问以下地址查看API文档:
- Swagger UI: httpx://localhost:8000/swagger/
- ReDoc: httpx://localhost:8000/api/doc/
部署
生产环境设置
- 设置环境变量
DJANGO_ENV=production - 收集静态文件:
python manage.py collectstatic - 使用Gunicorn或uWSGI部署应用
- 配置Nginx或Apache作为前端代理
数据库备份
使用脚本进行数据库备份:
bash
python scripts/backup_db.py开发指南
添加新应用
在modules目录下创建新应用:
bashpython manage.py startapp myapp modules/myapp在config/settings/base.py中添加应用到INSTALLED_APPS
为新应用创建URL配置并在api/urls.py中包含
编写API视图
推荐使用Django REST Framework的ViewSet:
python
from rest_framework import viewsets
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer中间件使用
自定义中间件位于middleware目录,可以在settings中配置使用。
安全注意事项
- 生产环境必须设置强密码和安全密钥
- 生产环境必须关闭DEBUG模式
- 确保ALLOWED_HOSTS设置正确
- 使用HTTPS保护生产环境
- 定期备份数据库