路飞项目:后端项目调整目录 与 调整配置
目录
路飞项目:后端项目调整目录 与 调整配置
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中使用时不再飘红

 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号