重构目录以及配置

创建项目

# 1.创建虚拟环境
mkvirtualenv -p python3 luffy

# 2.安装django
pip install django==2.2.2

# 3.pycharm中配置
打开pycharm>new project>Django>选刚创建的虚拟环境
# 或者在虚拟环境目录下用django-admin命令创建项目也可以

调整项目目录结构

将原有的settings.py配置信息复制到dev.py中,然后settings.py文件直接删除

luffyapi
    - doc              # 存放一些说明文档等 - 文件夹
    - logs             # 项目运行时/开发时日志目录 - 包
    - luffyapi         # 项目主应用,开发时的代码保存 - 包
        - apps/        # 开发者的代码保存目录,以模块[子应用]为目录保存 - 包- libs/        # 第三方类库的保存目录[第三方组件/模块] - 包
        - settings/    # 配置目录 - 包
            - dev.py    # 项目开发时的本地配置
            - prod.py   # 项目上线时的运行配置
        - __init__.py
        - urls.py       # 总路由
        - wsgi.py       # 使用uwsgi部署项目时用到
    - scripts          # 保存项目运营时的脚本文件 - 文件夹
    - manage.py        # 脚本文件        

修改配置

此时,如果我们直接运行项目,会出现报错,

因为manage.py查找的是原来的配置文件路径,

如果我们需要使用自己的配置文件,就需要修改manage.py中的配置信息,如下:

# manage.py文件中:

# 原来的配置:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings')

# 修改后的配置:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')

 如果还是不行,在下面的位置也要修改

同理,当项目上线时,我们也需要配置wsgi.py文件中的os.environ.setdefault参数

创建app

由于我们当前位置在根目录的luffyapi下,所以我们需要cd到apps包下创建子应用

由于apps目录下没有manage.py,所以我们需要通过相对路径来查找到manage.py的位置,来进行创建子应用

startapp在哪执行,就把app创建在哪

这样,app就创建成功了!

环境变量配置

dev配置文件中,BASE_DIR的路径为小luffyapi

# 此时的BASE_DIR为小luffyapi
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

我们创建项目时默认会将项目的根路径也就是大luffyapi加入环境变量当中,

此时的BASE_DIR并没有添加到环境变量中,导包会报错(除非从根目录的位置开始导包)

所以我们需要将BASE_DIR的路径添加到环境变量中,

同理,如果我们没有将apps添加到环境变量中,注册app时也会报错,

所以也需要将apps路径添加到环境变量中,如下:

import os

# 此时的BASE_DIR路径就是小luffyapi的路径
# 所以我们需要将BASE_DIR与apps文件夹都添加到环境变量
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import sys
sys.path.insert(0,BASE_DIR)
APPS_DIR = os.path.join(BASE_DIR,'apps')
sys.path.insert(1,APPS_DIR)
print(sys.path)


# 这里用insert/append都可以

此时,我们已经将Base_DIR和apps都添加到环境变量中,

在INSTALLED_APPS中注册app,默认在环境变量中查找,

而apps路径已经被我们添加到环境变量当中,

所以注册app的时候就能通过apps路径找到app

模块导入设置

解决了环境变量的配置问题,但是我们注册app就不会出现找不到app的情况,

但是,当我们导模块的时候,导入没问题,也能正常使用,但是pycharm中却会飘红,

这时我们就需要进行如下设置:

通过将apps设置为Sources Root,

这样,我们在进行导包的时候就不会出现导包没错,但是pycharm飘红的情况了

同理,我们也可以将小luffyapi设置一下,也设置为Sources Root

注意:

这里有一个前提,就是apps的路径必须是已经添加到环境变量中,

否则会出现pycharm不飘红提示,但是导包的时候会出错。

 

posted @ 2022-05-26 14:50  _yessir  阅读(33)  评论(0编辑  收藏  举报