2.项目创建、重构目录、配置开发环境
一、后台:Django项目创建
环境
"""
为luffy项目创建一个虚拟环境
>: mkvirtualenv luffy
"""
"""
按照基础环境依赖
>: pip install django==2.0.7
>: pip install djangorestframework
>: pip install pymysql
"""
步骤:
第一步:进入luffy虚拟环境安装django2.2版本
注意:千万别开代理,报错报错报错!
第二部:第二步:使用pycharm创建后台luffy项目,选择解释器
第三步就是目录调整
目录调整
第三步,调整目录
配置文件调整
1、新建setting
文件夹,把原来的settins.py配置文件改名为dev.py
,再copy一份,命名为pro.py
2、在manage.py 中指向的配置文件,改成自己修改后的配置文件路径
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.setting.dev')
3、设置国际化(可选)
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
4、启动项目
注意如果不能点击启动可以添加一个Django server
app调整
调整app的路径,以后把所有app都放到luffy_api下的apps文件夹下,这样更加整洁
1、创建项目
-
切换到apps路径下,执行创建app的命令
python ../../manage.py startapp user
注意:切换路径,不然找不到文件报错
PS E:\luffy_api\luffy_api\apps> python manage.py startapp user D:\Virtualenvs\luffy\Scripts\python.exe: can't open file 'manage.py': [Errno 2] No such file or directory
2、注册项目
原来在配置文件的INSTALLED_APPS
直接注册,现在直接注册找不到user模块(应用),需要配置
方式一:绝对路径注册
INSTALLED_APPS = [
'luffy_api.apps.user',
]
方式二:apps路径添加到环境变量中(sys.path)
# 原来直接注册为什么不报错?
原来直接写app名字不报错,原因是app就在项目根路径下(模块的查找),由于项目的根路径在环境变量中,app就在根路径下,它能直接找到
# 现在为什么报错?
现在的问题是apps路径不在环境变量中,它就找不到
# 解决
把apps的路径加入到环境变量中,要在项目的启动时加,启动入口是配置文件
apps添加到环境变量
sys.path.append(os.path.join(BASE_DIR,'apps'))
以后再INSTALLED_APPS中只需要写app的名字即可
uwsgi调整
如果是测试阶段不修改也没问题,项目如果上线,使用uwsgi
上线,运行wsgi.py需要修改
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.setting.pro')
第三方类库、公共文件、创建日志、测试脚本文件夹
- 在应用下创建
libs
文件夹:第三方类库 - 在应用下创建
utils
文件夹:公共文件 - 在根下创建
logs
文件夹和scripts
文件夹:日志和测试脚本
添加环境变量
'''dev.py'''
# apps添加环境变量
sys.path.append(os.path.join(BASE_DIR,'apps'))
# 小luffy_api添加到环境变量
sys.path.append(BASE_DIR)
注意:如果导入pycharm爆红,但是没有错,点右键,把该路径(在环境变量中的),做成source root
即可
注意
### 注意:以后导入包
-尽量用最短路径导入,如果从长路径导入--》路径经过的py文件都会去执行--》可能会导致循环导入的问题
-我个人推荐用相对导入
# from apps.user import models
from . import models 推荐用这个
-py文件中有相对导入,这个py文件不能作为脚本运行
-django项目中,由于没有右键运行的脚本,所以都可以用相对导入
创建项目
"""
前提:在目标目录新建luffy文件夹
>: cd 建立的luffy文件夹
>: django-admin startproject luffyapi
开发:用pycharm打开项目,并选择提前备好的虚拟环境
"""
二、重构项目目录
"""
├── luffyapi
├── logs/ # 项目运行时/开发时日志目录 - 包
├── luffyapi/ # 项目主应用,开发时的代码保存 - 包
├── apps/ # 开发者的代码保存目录,以模块[子应用]为目录保存 - 包
├── libs/ # 第三方类库的保存目录[第三方组件、模块] - 包
├── settings/ # 配置目录 - 包
├── dev.py # 项目开发时的本地配置
└── prod.py # 项目上线时的运行配置
└── utils/ # 多个模块[子应用]的公共函数类库[自己开发的组件]
├── urls.py # 总路由
├── wsgi.py # 线上运行的
└── scripts/ # 保存项目运营时的脚本文件 - 文件夹
├── manage.py # 线下运行,开发时
├── manage_prod.py # 线上运行,数据库迁移需要
"""
三、配置开发环境
"""
1.修改 wsgi.py 与 manage.py 两个文件:
# manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')
# wsgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.prod')
# manage_prod.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.prod')
2.将settings.py删除或改名,内容拷贝到settings/dev.py中
3.修改dev.py文件内容
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
4.修改启动配置:见插图
5.在任何一个__init__.py文件中测试默认配置文件是否是dev.py文件
from django.conf import settings
print(settings)
"""