Luffy后台Django项目创建
一、准备环境
1.创建luffy项目虚拟环境
mkvirtualenv luffy
2.安装项目基础依赖
# 1.安装Django
pip install django==3.2.2
# 2.安装djangorestframework
pip install djangorestframework
# 3.安装pymysql,或者是mysqlclient
-运气好:一把装好就用mysqlclient
-pip3 install mysqlclient
-或者使用pymysql(安装django版本超过2.0.7以上的版本, 使用mysql数据库的时候会出现异常, 我们接下来修改源码来解决这种问题)
-在配置文件中加入
import pymysql
pymysql.install_as_MySQLdb()
二、创建项目
-
前提:新建一个项目文件夹, 并进入该文件夹
cd 建立的luffy文件夹
-
执行命令创建(也可以使用pycharm创建)
django-admin startproject luffyapi
开发:使用 Pycharm 打开, 并使用你创建的虚拟环境
三、项目目录调整
重构项目目录
├── luffyapi ├── logs/ # 项目运行时/开发时日志目录 - 包 ├── manage.py # 脚本文件 ├── luffyapi/ # 项目主应用,开发时的代码保存 - 包 ├── apps/ # 开发者的代码保存目录,以模块[子应用]为目录保存 - 包 ├── libs/ # 第三方类库的保存目录[第三方组件、模块] - 包 ├── settings/ # 配置目录 - 包 ├── dev.py # 项目开发时的本地配置 └── prod.py # 项目上线时的运行配置 ├── urls.py # 总路由 └── utils/ # 多个模块[子应用]的公共函数类库[自己开发的组件] └── scripts/ # 保存项目运营时的脚本文件 - 文件夹
目录调整说明
- 把 app 统一放进某个文件夹下 : luffapi 下的 apps
- 在后期创建 app 的时候就需要先切换到 apps 的路径下进行创建
- 然后在项目同名路径下创建一个 settings 文件夹,将settings.py拖到里面去,改名为dev.py
调整后的目录
目录调整后运行会报错,原因是找不到配置文件了——django项目运行,第一步就要加载配置文件,所以要对项目入口文件进行修改
配置文件的修改
# manage.py : 开发阶段的项目入口文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings') # 将这行修改
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')
# wsgi.py : 项目上线阶段的加载的文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings') # 将这行修改
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.pro')
启动项目报错处理
-
使用 Pycharm 提供的快捷启动项目的绿色三角形按钮报错
-
报错提示为:CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False
-
解决方案——按下图进行操作
-
点击图中Edit Configurations,重新设置环境变量
重新添加之后会自动关联环境变量
四、app的创建与注册
创建app
注意:创建 app 的时候就需要先切换到 apps 的路径下进行创建
python ../../manage.py startapp [应用名称] # 注意manage.py路径的变化
注册app
-首先在app下的apps.py 中修改name name = 'luffy_api.apps.home'
-以后想直接写app名字,需要添加环境变量
环境变量
# 把当前项目中与项目名同名的小的luffyapi的这个路径加入到环境变量。 目的: 提供INSTALLED_APPS中应用的注册, 在项目启动时会被项目加载。
# 把apps的路径加入到环境变量。目的: 从app名开始导入
from pathlib import Path import os import sys BASE_DIR = Path(__file__).resolve().parent.parent # dev.py在settings文件夹下,所以此时的BASE_DIR为小luffy apps_path = os.path.join(BASE_DIR,'apps') sys.path.insert(0,apps_path) # 将apps目录加入环境变量 sys.path.insert(0, BASE_DIR) # 把BASE_DIR也加入到环境变量,以后直接从小路飞开始导起即可
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 4.现在就可以将让刚刚注册的应用生效了
'user',
'home',
]
解决不在项目中导入的飘红的问题
提示: 在apps中的应用下, 使用from viwes import xxx
这种导入就是会飘红,但是导入没有错误,只是不在项目中的导入, 就会出现这种问题
五、后台本地化调整
- 在dev.py配置文件中修改
LANGUAGE_CODE = 'zh-hans' # 使用汉字
TIME_ZONE = 'Asia/shanghai' # 亚洲上海时区
USE_I18N = True
USE_L10N = True
USE_TZ = False # 不使用UTC时区