项目配置是根据实际开发需求从而对整个Web框架编写相关配置信息。配置信息主要由项目的settings.py实现,主要配置有项目路径、密钥配置、域名访问权限、App列表、配置静态资源、配置模板文件、数据库配置、中间件和缓存配置。
一个简单的项目必须具备的基本配置信息有:项目路径、密钥配置、域名访问权限、App列表和中间件。以上一篇文章中的项目为例,settings.py的基本配置如下:
import os
# 项目路径
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#密钥配置
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ‘j3hy*e4*99=!@1ts*5y4&f$0^zw40862&j_$oo8j3j7*^)5y^i‘
#调试模式
# SECURITY WARNING: don‘t run with debug turned on in production!
DEBUG = True
# 域名访问权限
ALLOWED_HOSTS = []
# APP列表
# Application definition
INSTALLED_APPS = [
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
# 下面是新创建的app注册信息
‘index‘,
‘user‘,
]
# 中间件配置
MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware‘,
‘django.contrib.sessions.middleware.SessionMiddleware‘,
‘django.middleware.common.CommonMiddleware‘,
‘django.middleware.csrf.CsrfViewMiddleware‘,
‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
‘django.contrib.messages.middleware.MessageMiddleware‘,
‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_URL = ‘/static/‘
静态资源的配置在setting.py文件的最后几行,在一般的应用程序中,静态资源包括CSS文件、JavaScript文件以及图片等资源文件。在默认状态下,如果通过URL访问静态文件,各个应用的静态文件都有自己的静态文件存放地,例如可以通过http://localhost:8000/index/static/test.png
的模式进行访问index应用的静态文件test.png,此处可以统一把静态文件放到指定的目录,在上一行下面添加如下代码:
# 在根目录下创建static目录,添加test.png文件,在浏览器进行测试
STATICFILES_DIRS =(
os.path.join(BASE_DIR, "static"),
#os.path.join(BASE_DIR, "index/static"),
#os.path.join(BASE_DIR, "user/static"),
)
? ??? ??? ??? ??? ??? ??? ??? ??? ??
静态资源配置还有STATIC_ROOT,其作用是方便在服务器上部署项目,实现服务器和项目之间的映射。STATIC_ROOT用于项目生产部署,在项目开发过程中作用不大。STATIC_ROOT主要收集整个项目的静态资源并存放在一个新的文件夹,然后由该文件夹与服务器之间构建映射关系。STATIC_ROOT配置如下:STATICFILES_ROOT =(? os.path.join(BASE_DIR, "all_static"),# ?在根目录下创建static目录,添加test.png件,在浏览器进行测试 ?)
在Web开发中,模板是一种较为特殊的HTML文档。这个HTML文档嵌入了一些能够让Python识别的变量和指令,然后程序解析这些变量和指令,生成完整的HTML网页并返回给用户浏览。模板是Django里面的MTV框架模式的T部分,配置模板路径是告诉Django在解析模板时,如何找到模板所在的位置。创建项目时,Django已有初始的模板配置信息,如下所示:
TEMPLATES = [
{
‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘) #根目录下的模板,
#os.path.join(BASE_DIR, ‘index/templates‘), # index app里面的模板
],
‘APP_DIRS‘: False, # 此处将True修改为False,
‘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‘,
],
},
},
]
? BACKEND:定义模板引擎,用于识别模板里面的变量和指令。内置的模板引擎有Django Templates和jinja2.Jinja2,每个模板引擎都有自己的变量和指令语法。
? DIRS:设置模板所在路径,告诉Django在哪个地方查找模板的位置,默认为空列表,此处设置为更目录下的templates文件,该文件若是用Django框架创建的话,会自动生成。
? APP_DIRS:是否在App里查找模板文件,默认为True,但此处要设置为False才能使用templates里面的模板。
? OPTIONS:用于填充在RequestContext中上下文的调用函数,一般情况下不做任何修改。
数据库配置是选择项目所使用的数据库的类型,不同的数据库需要设置不同的数据库引擎,数据库引擎用于实现项目与数据库的连接,Django提供多做种数据库引擎:sqlserver, postgresql,?mysql, sqlite3, oracle, mongdb等选择其中一种或者几种都可。
DATABASES = {
# sqlite3的配置
‘default‘: {
‘ENGINE‘: ‘django.db.backends.sqlite3‘,
‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
},
# mysql 的配置
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘django_database‘, # 此处要设置为你的数据库名
‘USER‘: ‘root‘ # 用户
‘PASSWORD‘: ‘123456‘ # 密码
‘HOST‘: ‘127.0.0.1‘ # 数据库所在IP
‘PORT‘: ‘3306‘ # 端口
}
}
如果把上述的连接信息改为MySQL数据库,首先安装MySQL连接模块,由于mysqldb不支持Python 3,因此Django 2.0不再使用mysqldb作为MySQL的连接模块,而选择了mysqlclient模块,两者之间在使用上并没有太大的差异。在配置MySQL之前,首先安装mysqlclient模块,这里以pip安装方法为例,打开CMD窗口并输入安装指令pip install mysqlclient,等待模板安装完成。或者在init__.py 里面加上:**import **``pymysql
pymysql.install_as_MySQLdb()
报错?raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.‘ % Database.version),此时点开上图红色base文件。
将红色框中的两行注释,即可,成功配置mysql数据库。
? ??
原文:https://www.cnblogs.com/sinlearn/p/12776239.html