路飞项目:后端项目调整目录 与 调整配置

路飞项目:后端项目调整目录 与 调整配置

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当做参数传进去,

image-20230224165834245

② 我们可以打印sys.argv,看到sys.argv就是命令行中python后输入的命令

image-20230224170541503

③ 由于我们修改了settings.py文件,将其移到了settings文件夹下的dev.py,所以我们需要将main.py中的配置文件修改成dev.py

image-20230224171739490

2.项目上线阶段 wsgi.py/asgi.py中配置文件修改为prod.py

项目上线后 ,需要使用prod文件来进行项目的配置

image-20230224172547598

(2) 创建app

①切换到apps的目录下

cd 项目同名目录
cd apps

②创建app

python ../../manage.py startapp app名

③注册app

当我在dev.py中注册了创建的app后,由于更改了目录结构,所以原来的环境变量中并不能找到注册的app目录

image-20230224184335599

解决方式一:注册app时使用【绝对导入】

  • 1.修改 app目录下的apps.py中的name属性

image-20230224185523516

  • 2.在dev.py中使用绝对导入
'luffy_api.apps.home'

解决方式二:添加新的环境变量【相对导入】

那么我们需要添加新的环境变量,使得django可以找到创建的app目录

  • 1.在配置文件的最开始,把apps目录的路径添加到环境变量中

image-20230224190643983

  • 2.直接在配置文件中注册,此时相对导入即可不在需要绝对导入

image-20230224190708973

(3)将项目同名目录也加入环境变量

为了方便,我们也可以将项目同名目录也加入环境变量中,也就是项目默认的BASE_DIR加入到环境变量中

image-20230224191819991

(4)pycharm的Sources Root

可以将加入环境变量中的目录加入到Sources Root,使得在pycharm中使用时不再飘红

image-20230224192108545

posted @ 2023-02-24 19:28  Duosg  阅读(42)  评论(0编辑  收藏  举报