重构目录以及配置
创建项目
# 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不飘红提示,但是导包的时候会出错。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人