diango项目目录结构修改后的配置
修改目录结构
django项目中目录结构在实际项目中可能不合适,尤其是使用drf时,需要修改项目的目录结构。
目录结构修改后,需要一定的配置,否则整个项目是跑不起来的。修改后的目录结构如下:
项目目录结构修改后,需要的配置如下
启动文件修改
启动文件有两个:分别是wsgi.py
【线上部署】和manage.py
【本地开发】,修改的内容类似
# manage.py
# 将原先的Luffyapi.settings修改为新的Luffyapi.settings.dev
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Luffyapi.settings.dev')
配置文件修改
配置文件由原先的settings.py
变为settings/dev.py
,其中的BASE_DIR
已经不再是项目根路径了,
此时需要将BASE_DIR
添加环境变量中,并且里面的app文件夹一并同时加入环境变量,这样可以保证导入时可以从apps开始
import os
import sys
import datetime
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, BASE_DIR)
# 把apps的路径加入到环境变量
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))
注意:包内导模块使用相对导入,不要使用绝对导入
# user应用内在views.py中导入ser.py
# 相对导入 from . import ser
# 绝对导入 from Luffyapi.apps.user import ser 【报错】
# 报错信息
"INSTALLED_APPS." % (module, name)
RuntimeError: Model class Luffyapi.apps.user.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
给apps添加source
这样做的目的是为而解决pycharm路径导入时飘红的问题
# user/views.py
from user import models # 不设置source时可以使用,但是pycharm不认识,会飘红
如何添加source
# 选择apps文件夹,右键,选择Mark Directory as Sources Root #设置后apps文件夹也会变颜色【pycharm版本不同可能有差别】
如何新建app
cmd中,进入apps文件夹所在路径,执行如下命令,
python ../../manage.py startapp user
# 在哪个路径下执行manage.py 就在那个路径下生成app,所以需要相对路径找到manage.py
新建超级用户
和最初django的生成超级用户的方式一致,在项目根路径下执行
python manage.py createsuperuser
启动项目
# 项目根路径下
python manage.py runserver