# DjangoProject **Repository Path**: YUERHOO/DjangoProject ## Basic Information - **Project Name**: DjangoProject - **Description**: 基于 Django + Django REST Framework + Channels 的现代化 Web 项目,包含完整的用户认证体系、RESTful API 接口以及 WebSocket 实时通信功能。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: Django, Python, Framework ## README # DjangoProject 基于 Django + Django REST Framework + Channels 的现代化 Web 项目,包含完整的用户认证体系、RESTful API 接口以及 WebSocket 实时通信功能。 ## 软件架构 ### 后端框架 - **Django 4.2+** - 主 Web 框架 - **Django REST Framework** - 构建 RESTful API - **Django Channels** - 支持 WebSocket 和异步通信 - **Daphne** - ASGI 服务器(Channels 官方推荐) - **Uvicorn** - 异步 ASGI 服务器(备选方案) ### 数据库 - **SQLite** - 默认开发数据库(生产环境建议更换为 PostgreSQL) ### 前端组件 - **Django Admin** - 后台管理界面 - **Bootstrap 5** - REST Framework API 界面主题 - **Select2** - 增强型下拉选择组件 ### 核心功能模块 - **account** - 用户认证模块(包含 Profile 扩展、Token 认证) - **api** - REST API 接口模块 - **ws** - WebSocket 实时通信模块 - **utils** - 公共工具类(包含 UUID 基类模型) ## 安装部署 ### 环境要求 - Python 3.10+ - pip 包管理器 ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/YUERHOO/DjangoProject.git cd DjangoProject ``` 2. **创建虚拟环境** ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **配置环境变量** ```bash cp .env.example .env # 如有示例文件 # 编辑 .env 文件配置数据库、密钥等参数 ``` 5. **初始化数据库** ```bash python manage.py migrate ``` 6. **创建超级用户** ```bash python manage.py createsuperuser ``` ## 运行指南 ### 方式1:使用 Daphne(Channels 官方推荐) ```bash daphne -p 8000 core.asgi:application ``` ### 方式2:使用 Uvicorn ```bash uvicorn core.asgi:application --host 0.0.0.0 --port 8000 ``` ### 方式3:开发模式 ```bash python manage.py runserver 0.0.0.0:8000 ``` 访问 http://localhost:8000 即可看到项目运行。 ## API 接口文档 项目内置了 REST Framework 提供的 API 文档界面: | 接口路径 | 方法 | 说明 | |---------|------|------| | `/api/test/` | GET/POST | 测试接口(包含日志示例) | | `/api/auth/register/` | POST | 用户注册 | | `/api/auth/login/` | POST | 用户登录 | | `/api/auth/userinfo/` | GET | 获取用户信息 | | `/api/auth/logout/` | POST | 退出登录 | 详细 API 文档可在运行项目后访问 http://localhost:8000/docs/ 查看。 ## WebSocket 接口 项目支持 WebSocket 实时通信,连接地址: ``` ws://localhost:8000/ws/chat/ ``` ### ChatConsumer 功能 - **自动用户认证**:利用 AuthMiddlewareStack 自动获取当前用户。 - **实时消息广播**:消息接收后可实时广播到对应分组。 - **时间戳功能**:静态方法获取当前时间戳。 - **异步处理**:基于 AsyncWebsocketConsumer 实现高性能异步通信。 ## 项目结构 ``` DjangoProject/ ├── core/ # 核心配置 │ ├── settings.py # Django配置 │ ├── asgi.py # ASGI配置(支持HTTP/WebSocket) │ └── urls.py # URL路由 ├── account/ # 用户认证模块 │ ├── models.py # 用户资料模型(Profile 继承 BaseUUIDModel) │ ├── serializers.py # 序列化器(注册/登录/信息校验) │ ├── views.py # 视图函数(注册/登录/登出) │ └── authentication.py # Token 认证类(ProfileTokenAuthentication) ├── api/ # REST API模块 │ └── views.py # API视图(包含日志记录示例) ├── ws/ # WebSocket模块 │ └── consumers.py # 聊天消费者(ChatConsumer) ├── utils/ # 工具模块 │ └── models.py # 基类模型(BaseUUIDModel,提供UUID主键) ├── static/ # 静态资源 ├── logs/ # 日志文件 ├── .env # 环境变量配置 ├── requirements.txt # 依赖列表 └── manage.py # Django管理脚本 ``` ## 用户认证流程 1. **注册** - POST `/api/auth/register/` ```json { "username": "your_username", "password": "your_password", "password_confirm": "your_password", "email": "your@email.com" } ``` 2. **登录** - POST `/api/auth/login/` ```json { "username": "your_username", "password": "your_password" } ``` 3. **获取用户信息** - GET `/api/auth/userinfo/` - Header: `Authorization: Token ` 4. **退出登录** - POST `/api/auth/logout/` - Header: `Authorization: Token ` ## 贡献指南 我们欢迎社区贡献者参与项目改进: 1. **Fork 本项目** 2. **创建特性分支** (`git checkout -b feature/AmazingFeature`) 3. **提交更改** (`git commit -m 'Add some AmazingFeature'`) 4. **推送到分支** (`git push origin feature/AmazingFeature`) 5. **发起 Pull Request** 提交 PR 时请包含: - 相关 Issue 链接 - 变更说明 - 测试用例 ## 鸣谢 感谢以下开源项目为本项目提供的支持: - [Django](https://www.djangoproject.com/) - [Django REST Framework](https://www.django-rest-framework.org/) - [Django Channels](https://channels.readthedocs.io/) - [Bootstrap](https://getbootstrap.com/) - [Gitee](https://gitee.com/) ## License 本项目采用 MIT License 开源协议。