配置相关
- 在python3.6之后,处理文件的路径模块由原来的os 变成 pathlib,这两者之间互相不会收到影响。
settings配置文文件
from pathlib import Path
import os
import sys
# 项目根路径
# 我们就是要让小路飞路径作为项目根路径
BASE_DIR = Path(__file__).resolve().parent.parent # 项目根路径, 小路飞luffy_api路径 D:\pythonProject03\luffy_api\luffy_api
# print(BASE_DIR)
# 把 apps 路径加入到环境变量
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
# 把BASE_DIR也加入到环境变量,以后直接从小路飞开始导起即可
sys.path.insert(0, str(BASE_DIR))
# print(sys.path)
# 以后从大路飞开始导起,或者小路飞开始导起,或者apps开始导起都可以
# 秘钥,涉及到加密的django中,都会用它
SECRET_KEY = 'django-insecure-!g(8l%fw_#t$pz$x4jdf#e3$b4+c%xzqyq@3zki08vj&i)z4k-'
# 项目是以debug模式运行,还是非debug模式运行
# 项目上线,要改成false
# debug=True 代码可以热更新
# 调试模式下,对开发者更友好:可以列出所有路径.报了错,前端能看到
DEBUG = False
# 它搭配debug=False,它的意思是,允许我的项目部署在哪个ip地址上,* 表示允许部署在所有地址上
ALLOWED_HOSTS = ['*']
# django 是多个app组成的,里面配置app,默认带的app,django内置的app
# django 是一个大而全的框架,有很多内置app:
# admin后台管理,
# auth权限管理,
# contenttypes表中存app也表的关系,
# sessions session表,django的session相关
# messages:消息框架,flask讲闪现,是一样的东西
# staticfiles:静态资源的
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
# 'luffy_api.apps.home', # luffy_api在环境变量,直接从这一层开始导起, 太长了,以后就想 注册 home
# 'luffy_api.apps.user'
'home',
'user'
]
# 中间件
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', # 安全相关中间件
'django.contrib.sessions.middleware.SessionMiddleware', # session相关中间件
'django.middleware.common.CommonMiddleware', # 带不带 / 问题
'django.middleware.csrf.CsrfViewMiddleware', # csrf 认证,生成csrf串
'django.contrib.auth.middleware.AuthenticationMiddleware', # 用户认证
'django.contrib.messages.middleware.MessageMiddleware', #消息框架相关
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 根路由
ROOT_URLCONF = 'luffy_api.urls'
# 模板文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'], # 坑,模板路径用列表,可以有多个
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# 项目运行的配置---》项目上线运行,使用uwsgi 运行 application()
WSGI_APPLICATION = 'luffy_api.wsgi.application'
# 用户名密码写死在代码中了,保证安全
# source 之后可以可以重新配置
name = os.environ.get('LUFFY_NAME', 'luffy')
password = os.environ.get('LUFFY_PASSWORD', 'Luffy123?')
# 拓展:有的公司,直接有个配置中心---》服务--》只用来存放配置文件
# 数据库配置,mysql 主从搭建完,读写分离
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'luffy',
'USER': name,
'PASSWORD': password,
'HOST': '127.0.0.1',
'PORT': 3306
},
}
#忽略掉
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# 国际化
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
# 静态资源
STATIC_URL = '/static/'
#
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'