1.Django 配置信息
基本配置信息:
BASE_DIR = Path(__file__).resolve().parent.parent
django项目的工作目录。
SECRET_KEY = ')o+504x)+hi#xh7ap01ouru@spqn5tj3od%9xlcd!0d9=0#bk('
密匙配置,在创建项目的时候产生,一般无需修改。主要用于重要数据的加密处理。提高项目安全性,避免受到攻击者的恶意破坏。
DEBUG = True
调试模式,若在开发模式,则应该设置为True,若项目部署上线则应该改为False。在开发模式中Django会自动检测代码是否被修改,根据结果确认是否重启服务器。
ALLOWED_HOSTS = []
域名访问权限,设置可访问的域名,默认为空。当DEBUG = True时且ALLOWED_HOSTS为空列表时,项目只允许以localhost或127.0.0.1在浏览器访问,当DEBUG = False时,ALLOW_HOSTS 为必填项,负责项目无法启动,若想所有域名均可访问,设置ALLOWED_HOSTS = ['*']。
INSTALLED_APPS = [ 'django.contrib.admin', # 后台管理系统 'django.contrib.auth', # 用户认证系统 'django.contrib.contenttypes', # 记录项目中所有的model元数据 'django.contrib.sessions', # session会话功能,用于标识当前访问网站的用户身份,记录用户信息。 'django.contrib.messages', # 消息提示功能 'django.contrib.staticfiles', # 查找静态资源路径 'index' # 自己添加的app ]
资源文件配置:
资源文件配置分为静态资源和媒体资源。静态资源的配置由配置属性STATIC_URL,STATICFILES_DIRS和STATIC_ROOT进行设置,媒体资源文件的配置方式由配置属性MEDIA_URL和MEDIA_ROOT决定。
资源路由(STATIC_URL):
# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_URL = '/static/'
静态资源指网站中不会改变的文件。例如css,JavaScript,图片等文件。若资源路由STATIC_URL的值为/static/,则浏览器访问静态资源的网站必须为static,否则无法访问,且在调试模式下只能识别app目录下的static文件夹。
资源集合(STATICFILES_DIRS):
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'MYSTATIC1'), os.path.join(BASE_DIR, 'MYSTATIC2'),]
资源部署(STATIC_ROOT):
STATIC_ROOT = os.path.join(BASE_DIR, 'allStatic')
STATIC_ROOT的作用是在服务器部署项目,实现服务器和项目之间的映射。STATIC_ROOT收集整个项目的静态资源并放在一个文件夹中,然后由该文件夹与服务器之间构建映射关系。当在调试模式时,Django会自动提供静态文件的代理服务,当进入生产环境时,需要设置STATIC_ROOT。
媒体资源(MEDIA):
# 媒体路由地址信息 MEDIA_URL = '/media/' # media文件夹的完整路径信息 MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
设置完成后还需要让Django找到配置信息:打开DjangoProject中的urls.py,为媒体文件夹添加路由地址。
from django.contrib import admin from django.urls import path, re_path from django.views.static import serve from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media') ]
模板配置:
模板是一种较特殊的HTML文档。文档中嵌入了一些django能够识别的变量和指令,然后由django的模板引擎解析这些变量和指令,生成完整的网页返回给用户浏览。
# django默认的模板配置信息 TEMPLATES = [ { # BACKEND: 定义模板引擎,内置模板引擎有DjangoTemplates与jinja2.Jania2 'BACKEND': 'django.template.backends.django.DjangoTemplates', # DIRS: 设置模板所在路径,默认为空 'DIRS': [BASE_DIR / 'templates'] # APP_DIRS: 是否在app里查找模板文件。 'APP_DIRS': True, # OPTIONS: 用于填充RequestContext的上下文,一般不改。 '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', ], }, }, ]
数据库配置:
django提供四种数据库引擎:MySQL,Oracle,sqlite3,postgresql。项目创建时默认使用sqlite3。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
若想使用MySQL数据库,则应当安装mysqlclient库,并将上述代码改为
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_db', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } }
若想使用多个数据库,则应当将代码改为
DATABASES = { # 第一个数据库 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_db', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', }, # 第二个数据库 'Database1': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', }, #第三个数据库 'Database2': { 'ENGINE': 'django.db.backends.oracle', 'NAME': 'django_db2', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '1521', } }
中间件:
中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。
# django默认的中间件,一般不需要更改,能满足大部分开发需求 MIDDLEWARE = [ # 内置的安全机制,保护用户与网站间的通信安全。 'django.middleware.security.SecurityMiddleware', # session会话功能 'django.contrib.sessions.middleware.SessionMiddleware', # 处理请求信息 'django.middleware.common.CommonMiddleware', # csrf防护功能 'django.middleware.csrf.CsrfViewMiddleware', # 开启内置的用户认证系统 'django.contrib.auth.middleware.AuthenticationMiddleware', # 开启内置的信息提示功能 'django.contrib.messages.middleware.MessageMiddleware', # 防止恶意程序单击劫持 'django.middleware.clickjacking.XFrameOptionsMiddleware',
Comments | NOTHING