路飞项目:后端项目调整目录 与 调整配置
目录
路飞项目:后端项目调整目录 与 调整配置
1.后端目录调整
# 调整目录后成
"""
├── luffy_api
├── logs/ # 项目运行时/开发时日志目录 - 包
├── manage.py # 脚本文件
├── luffy_api/ # 项目主应用,开发时的代码保存 - 包
├── apps/ # 开发者的代码保存目录,以模块[子应用]为目录保存 - 包
├── libs/ # 第三方类库的保存目录[第三方组件、模块] - 包
├── settings/ # 配置目录 - 包
├── dev.py # 项目开发时的本地配置
└── prod.py # 项目上线时的运行配置
├── urls.py # 总路由
└── utils/ # 多个模块[子应用]的公共函数类库[自己开发的组件]
└── scripts/ # 保存项目运行时的脚本文件,小的测试脚本 - 文件夹,不提交到git上
"""
2.配置调整
(1) 重新配置项目配置文件
1.开发阶段:当调整了目录之后python manage.py runserver无法运行项目 -- 重新配置项目配置文件dev.py
- 错误信息
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
- 分析原因
① 当启动项目的时候,相当于运行项目运行文件manage.py文件,此时会把 sys.argv
当做参数传进去,
② 我们可以打印sys.argv
,看到sys.argv
就是命令行中python后输入的命令
③ 由于我们修改了settings.py文件,将其移到了settings文件夹下的dev.py,所以我们需要将main.py中的配置文件修改成dev.py
2.项目上线阶段 wsgi.py/asgi.py中配置文件修改为prod.py
项目上线后 ,需要使用prod文件来进行项目的配置
(2) 创建app
①切换到apps的目录下
cd 项目同名目录
cd apps
②创建app
python ../../manage.py startapp app名
③注册app
当我在dev.py
中注册了创建的app后,由于更改了目录结构,所以原来的环境变量中并不能找到注册的app目录
解决方式一:注册app时使用【绝对导入】
- 1.修改 app目录下的apps.py中的
name属性
- 2.在dev.py中使用绝对导入
'luffy_api.apps.home'
解决方式二:添加新的环境变量【相对导入】
那么我们需要添加新的环境变量,使得django可以找到创建的app目录
- 1.在配置文件的最开始,把apps目录的路径添加到环境变量中
- 2.直接在配置文件中注册,此时相对导入即可不在需要绝对导入
(3)将项目同名目录也加入环境变量
为了方便,我们也可以将项目同名目录也加入环境变量中,也就是项目默认的BASE_DIR
加入到环境变量中
(4)pycharm的Sources Root
可以将加入环境变量中的目录加入到Sources Root,使得在pycharm中使用时不再飘红