2.1 基本配置信息
一个简单的项目必须具备的基本配置信息有:项目路径、密钥配置、域名访问权限、App列表和中间件。以MyDjango项目为例,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 = '@p_m^!ha=$6m$9#m%gobzo&b0^g2obt4teod84xs6=f%$4a66x' # 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', ]
上述代码列出了项目路径BASE_DIR、密钥配置SECRET_KEY、调试模式DEBUG、域名访问权限ALLOWED_HOSTS和App列表INSTALLED_APPS,各个配置说明如下。
项目路径BASE_DIR:主要通过os模块读取当前项目在系统的具体路径,该代码在创建项目时自动生成,一般情况下无须修改。
密钥配置SECRET_KEY:是一个随机值,在项目创建的时候自动生成,一般情况下无须修改。主要用于重要数据的加密处理,提高系统的安全性,避免遭到攻击者恶意破坏。密钥主要用于用户密码、CSRF机制和会话Session等数据加密。
• 用户密码:Django内置一套用户管理系统,该系统具有用户认证和存储用户信息等功能,在创建用户的时候,将用户密码通过密钥进行加密处理,保证用户的安全性。
• CSRF机制:该机制主要用于表单提交,防止窃取网站的用户信息来制造恶意请求。
• 会话Session:Session的信息存放在Cookies,以一串随机的字符串表示,用于标识当前访问网站的用户身份,记录相关用户信息。
调试模式DEBUG:该值为布尔类型。如果在开发调试阶段应设置为True,在开发调试过程中会自动检测代码是否发生更改,根据检测结果执行是否刷新重启系统。如果项目部署上线,应将其改为False,否则会泄漏系统的相关信息。
域名访问权限ALLOWED_HOSTS:设置可访问的域名,默认值为空。当DEBUG为True并且ALLOWED_HOSTS为空时,项目只允许以localhost或127.0.0.1在浏览器上访问。当DEBUG为False时,ALLOWED_HOSTS为必填项,否则程序无法启动,如果想允许所有域名访问,可设置ALLOW_HOSTS=['*']。
App列表INSTALLED_APPS:告诉Django有哪些App。在项目创建时已有admin、auth和session等配置信息,这些都是Django内置的应用功能,各个功能说明如下。
• admin:内置的后台管理系统。
• auth:内置的用户认证系统。
• contenttypes:记录项目中所有model元数据(Django的ORM框架)。
• sessions:Session会话功能,用于标识当前访问网站的用户身份,记录相关用户信息。
• messages:消息提示功能。
• staticfiles:查找静态资源路径。
如果在项目创建了App,必须在App列表INSTALLED_APPS添加App名称。将MyDjango项目已创建的App添加到App列表,代码如下:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'index', 'user', ]