本项目后端基于 Django 项目模板创建,提前内置了 DRF 等第三方开发库,可以极大的提高开发效率,避免重复造轮子。
跟标准的 Django 项目的区别还有:
- settings 配置文件转移到了 Backend/Backend/settings 文件夹内,base.py 中是基础配置,dev.py 代表的是开发环境配置,test.py 代表的是测试环境配置,prod.py 代表的是生产环境配置;
- startapp 创建的应用转移到了 Backend/Backend/apps 文件夹内,每一个文件夹代表了一个应用,如果要新建应用的话,需要先
cd Backend/apps然后在再python ../../manage.py startapp ApplicationName(注意应用首字母要大写);
- 项目代码拉取下来后,首先需要迁移数据库
python manage.py makemigrations
python manage.py migrate- 创建超级管理员账户
python manage.py createsuperuser开发环境和测试环境,用户名和密码在都是 admin。
- 在本地(一般是自己的电脑)开发的话,通过
python manage.py runserver启动,默认加载的是Backend/Backend/settings/dev.py,即在本地创建一个 db.sqlite3 数据库,所有的开发数据都在本地;
本地开发完成后,代码需要上传到 GitHub 自己的分支,然后创建 PR 合并到 test 分支,此时会触发测试环境的自动部署,模板中的默认配置可能会导致部署失败,因此需要修改一下 docker-compose.yml 文件和 .github\workflows\Backend.yml 中的占位符。
全局搜索关键词并替换:
- {{DOCKER_NAMESPACE}}:其替换为这个项目的英文名称,注意要小写;
- {{test_django_port}} / {{prod_django_port}}:将其替换为测试/生产环境的端口;
- {{test_mysql_}} and {{test_redis_}}:将其替换为测试/生产环境的配置信息。
- 本地开发数据库迁移的时候,一定要在本地执行完
python manage.py makemigrations和python manage.py migrate之后,将生成的 migrations 文件进行git add,然后再提交代码。这是因为 Github Actions 自动部署服务器的时候也会执行这两条命令,如果本地没有 migrations 文件而服务器上生成了的话,后续可能会导致代码仓库中的 migrations 文件跟服务器上的 migrations 文件不一致;