Django
基本介绍
- Django包含了一个网站开发所需的大部分内容,
- Django基于MVC模型,即即 Model(模型)+ View(视图)+ Controller(控制器)设计模式。
- django 具有强大的数据库功能,自带的后台功能和网址。
-
MVC模型
- MVC模式是软件工程的一种软件架构模式(以一种插件式的、松耦合的方式连接在一起),把软件系统分为三个基本部分:
- 模型: 编写程序应有的功能,负责业务对象与数据库的映射(ORM)
- 视图:图形界面,负责与用户的交互(页面)
- 控制器:负责转发请求,对请求进行处理
- MVC模式是软件工程的一种软件架构模式(以一种插件式的、松耦合的方式连接在一起),把软件系统分为三个基本部分:
-
MTV模型
- Django的MTV模型本质同MVC一样,只不过定义上有一点不同
- M表示模型:编写程序应有的功能, 负责业务对象与数据库的映射(ORM )
- T表示模板: 负责如何把页面展示给用户
- V表示视图:负责业务逻辑,并在合适调用model和template
- 再加一个URL控制器,用于将一个个并不认同的URL的页面请求分发给不同的View处理
- Django的MTV模型本质同MVC一样,只不过定义上有一点不同
-
Django语法
-
Django的setting.py文件内容解释
import os from pathlib import Path # 开头获取项目所在的绝对路径, __file__这个变量可以获取当前文件的路径 BASE_DIR = Path(__file__).resolve(strict=True).parent.parent # 加密 SECRET_KEY = '@pt=tw&!9+1rh2!jt!ph92fdc4u^-@0pa5#b%@guys^ykz4bk-' # 调试模式 DEBUG = True ALLOWED_HOSTS = ['*'] # 允许访问的域名列表,且DEBUG=False时必填 # 应用程序的注册 INSTALLED_APPS = [ 'django.contrib.admin', # 内置的后台系统 'django.contrib.auth', # 内置的用户认证 'django.contrib.contenttypes', # 记录项目中所有的model数据即ORM框架 'django.contrib.sessions', # session会话功能,用于表示当前访问网站的用户信息 'django.contrib.messages', # 消息提示功能 'django.contrib.staticfiles', # 寻找静态资源路径 'project_one.apps.AppConfig', # 将APP项目添加到列表 ] # 中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', # 内置的安全机制,保护用户与网站的通信安全 'django.contrib.sessions.middleware.SessionMiddleware', # 会话session功能 'django.middleware.common.CommonMiddleware', # 处理请求信息 'django.middleware.csrf.CsrfViewMiddleware', # 开启CSRF防护功能 'django.contrib.auth.middleware.AuthenticationMiddleware', # 开启内置的用户认证系统 'django.contrib.messages.middleware.MessageMiddleware', # 开启内置的信息提示功能 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 防止恶意攻击劫持 ] ROOT_URLCONF = 'project_one.urls' # 配置路由文件(urls.py)的位置 # 模板路径 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', ], }, # 用于填充在RequestContext1中上下文的调用函数,一般不做修改 }, ] WSGI_APPLICATION = 'project_one.wsgi.application' # 设置wsgi中函数application的位置 # 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } # 密码验证 # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators 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', }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/
-