2024金秋版:Django5开发与部署保姆级零基础教程
后端开发的手把手教程来啦!零基础学习Django。架构设计、开发部署一步到位!知识就是力量,学起来!
教程目录
1 搭建Python环境
• 1.1 Windows安装Python
• 1.2 Windows切换系统全局Python版本
• 1.3 macOS安装Python
• 1.4 macOS使用pyenv切换系统默认Python版本
• 1.5 为什么要构建Python虚拟环境
• 1.6 使用Python自带工具构建Python虚拟环境
• 1.7 退出虚拟环境
2 初始化Django项目
• 2.1 创建项目虚拟环境
• 2.2 设置VSCode自动激活虚拟环境
• 2.3 修改pip镜像源
• 2.4 创建Django项目代码
• 2.5 初次启动Django项目
• 2.6 导出项目依赖包
• 2.7 路由小试:替换Django默认欢迎页
• 2.8 Debug模式开启与关闭
• 2.9 设置项目时区
• 2.10 设置项目环境变量文件.env
• 2.11 建议的.gitignore文件配置
3 Demo应用教学:基于FBV的API开发
• 3.1 FBV和CBV
• 3.2 创建Demo应用
• 3.3 基于FBV开发API:GET请求
• 3.3.1 GET请求:query方式传参
• 3.3.2 使用Django的JsonResponse返回JSON数据
• 3.3.3 GET请求:path方式传参
• 3.4 基于FBV开发API:POST请求
• 3.4.1 POST请求:接收formdata数据
• 3.4.2 关闭跨站请求伪造(CSRF)保护
• 3.4.3 POST请求:接收JSON数据
4 Django REST framework(DRF)
• 4.1 什么是Django REST framework
• 4.2 安装Django REST framework
• 4.3 使用api_view装饰器解决跨站请求伪造(CSRF)保护
• 4.4 使用DRF简化FBV的API代码
• 4.5 解决浏览器无法直接访问DRF的GET请求地址的问题
5 使用Swagger自动生成API文档
• 5.1 安装drf-yasg
• 5.2 Swagger UI与ReDoc
• 5.3 继续完善API文档的说明
• 5.4 在Swagger页面中调试API
6 Demo应用教学:基于CBV的API开发
• 6.1 开发需求
• 6.2 创建数据库模型(Model)
• 6.3 使用Django自带的SQLite数据库
• 6.4 使用makemigrations和migrate创建数据库表结构
• 6.5 makemigrations指令和migrate指令的区别
• 6.6 构建数据库模型序列化器(ModelSerializer)
• 6.7 基于APIView类的实现方式
• 6.7.1 实现新增文章API
• 6.7.2 实现查询文章列表API(含搜索)
• 6.7.3 构建公共工具库:分页器
• 6.7.4 构建公共工具库:Swagger分页查询装饰器
• 6.7.5 构建公共工具库:全局异常处理
• 6.7.6 构建公共工具库:序列化器相关处理
• 6.7.7 实现查询指定文章API
• 6.7.8 实现更新指定文章API
• 6.7.9 实现删除指定文章API
• 6.8 基于GenericAPIView类的实现方式
• 6.8.1 实现新增文章和查询文章列表API
• 6.8.2 实现对指定文章的查询、更新、删除API
• 6.9 基于ViewSet类的实现方式
• 6.10 其他更高封装度的混合类(选读) <br />
7 Django自带的Admin管理后台
• 7.1 创建管理员账号
• 7.2 加入自建应用Article数据表
• 7.3 定制Article数据表的字段显示
8 实战应用教学:开发用户管理系统
• 8.1 项目需求
• 8.2 创建Account应用和用户(User)表
• 8.3 实现用户登录API
• 8.4 构建公共工具库:API登录状态及权限验证
• 8.5 实现用户退出API
• 8.6 在Swagger页面携带所需的请求头数据
• 8.7 构建公共工具:数据合法验证器
• 8.8 实现用户“增删改查查”5个API
9 迁移至MySQL数据库
• 9.1 安装mysqlclient
• 9.2 设置Django数据库驱动配置
• 9.3 导出SQLite中的全部数据
• 9.4 执行迁移MySQ数据库
10 将运行日志写入文件
• 10.1 日志保存的规则、格式和内容
• 10.2 构建公共工具库:日志文件处理
• 10.3 配置Django日志
• 10.4 关于runserver与uvicorn生成日志的区别
11 部署生产环境
• 11.1 安装并运行uvicorn
• 11.2 关于生产环境加载静态资源的问题
• 11.3 使用Docker部署
• 11.3.1 创建项目专用Network
• 11.3.2 编写Django项目的dockerfile
• 11.3.3 编写Nginx配置和dockerfile
• 11.3.4 编写Nginx+Django+MySQL的docker compose文件
• 11.3.5 使用docker compose一键启动整体项目
• 11.3.6 相关的其他docker compose命令
• 11.3.7 Docker学习推荐阅读
• 11.3.8 关于生产环境部署的安全考虑因素
• 11.3.9 检查项目依赖包是否有更新
• 11.4 最终项目目录结构
12 教程Git源码
结束语
教程使用的系统环境及软件版本
【操作系统】
Windows 11
macOS Sonoma 14
【Docker软件】
Docker Engine: 27.1.1
Docker Desktop: 4.33.0
Docker Compose: v2.29.1-desktop.1
【Docker镜像】
mysql: 8.4.2
nginx: 1.27.0
python: 3.12.4
【主要Python依赖包】
Django: 5.0.7
django-environ 0.11.2
djangorestframework: 3.15.2
drf-yasg: 1.21.7
mysqlclient: 2.2.4
uvicorn 0.30.3
阅读完整版
完整教程可订阅我的公众号【卧梅又闻花】
《2024金秋版:Django5开发与部署保姆级零基础教程(上篇)》
《2024金秋版:Django5开发与部署保姆级零基础教程(下篇)》
教程Git源码
本项目已上传至Gitee和GitHub,方便各位下载。
Gitee:
https://gitee.com/betaq/django5-template-2024autumn
Github:
评论 0