Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
在 Django 源码学习前,需要知道 Python 环境搭建、Django 如何下载安装、如何利用 Django 创建项目以及新建应用。完成了这些,需要对 Django 进一步的认识,可以试着写一个简单的个人博客,作为入手实战。在编写代码的过程中,会开始去思考,Django 提供的 API,是否能熟练使用,从模型到视图再到路由,再把项目运行,在浏览器上打开,有没有觉得很神奇?为什么简短的几行代码就能在浏览器上访问到亲手写的网站。
出于这种对未知又想学习的好奇心,先来渐渐熟悉下 Django 的 Settings.py 配置文件。在知道 Django 的核心文件如何配置后,相信往后的学习会更加得心应手。
① BASE_DIR
进入 Django 项目的 settings.py 文件中。需要注意到的就是 BASE_DIR,首先引入os,os包可以对文件进行操作管理,然后base_dir代表的是路径。
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
② SECRET_KEY
Django 新建项目随机生成的密钥
SECRET_KEY = 'w4rpn$)qdtxjtyg)^mp456b)4pfx$jnb5dn0*g*h$v3)4y*ocg'
③ DEBUG
DEBUG = True 代表是调试环境
DEBUG = False 代表是生产环境
DEBUG = True
④ ALLOWED_HOSTS
允许的主机路径,不填写或者ALLOWED_HOSTS = ["*"]代表允许任意主机域名,如果要指定,在里面输入,比如域名只允许为 www.baidu.com 那么 ALLOWED_HOSTS = ["www.baidu.com"]
ALLOWED_HOSTS = ['*']
⑤ INSTALLED_APPS
代表当前项目应用,只有加入这里才能进行模型同步等操作。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
安装用户的登录认证,认证框架的核心和默认的类型
django.contrib.admin
内容类型系统,它允许权限和创建的模型类关联
django.contrib.contenttypes
Django 提供了一个通用的 Session 框架
django.contrib.sessions
消息框架可以使用不同的后端存储临时消息
django.contrib.messages
加载静态文件
django.contrib.staticfiles
⑥ MIDDLEWARE
django 中间件
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',
]
从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下:
⑦ ROOT_URLCONF
ROOT_URLCONF 代表的是主路由,也就是项目的主urls。
ROOT_URLCONF = 'blog.urls'
⑧ TEMPLATES
TEMPLATES 代表的是模版的处理, 包括路径 处理的包等。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(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',
],
"builtins": ["django.templatetags.static"]
},
},
]
⑨ WSGI_APPLICATION
WSGI_APPLICATION 启动定义 将使用的WSGI应用程序对象的完整Python路径。
WSGI_APPLICATION = 'blog.wsgi.application'
⑩ DATABASES
数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "",
"USER": "",
"PASSWORD": "",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}
LANGUAGE_CODE = 'zh-hans' 语言TIME_ZONE = 'UTC' 时区
USE_I18N = True 国际化
USE_L10N = True 如果USE_L10N设置为True,则区域设置指定的格式具有更高的优先级
USE_TZ = True 系统时区
STATIC_URL 静态文件路径