框架介绍
MVT&MVC
知道了框架的意义,那么就很好阐述我们接下来要讲的Django,这个框架的设计模式,Django主要采用MVT模式
M-model:模型,操作数据库功能部分
V-View:视图,处理业务逻辑的位置,提取数据、获取用户数据等等操作都在这里
T-Template:模版,用来展示视图操作后的数据,也可以在模版中为用户提供表单,让用户可以提交数据
-
在其他语言框架中,还有另外一种盛行的模式,叫做MVC,类似与Django的MVT
M-model:模型,和MVT的 m 是一样的,同样用来操作数据库
V-view:视图,和MVT的 T 是一样的,用来进行数据的可视化
C-Controller:控制器,相当于MVT中的 V,用来进行数据的逻辑操作
MVT | MVC |
---|---|
M-model | M-model |
V-View | C-Controller |
T-Template | V-view |
Django 介绍
Django是一个开放源代码的Web 应用框架,由纯Python写成,是目前 Python 语言中主流 de 三大Web框架之一(flask、django、tornado),是最容易上手的框架
Django最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件
框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的,这也代表着这是一门及其优雅的框架
框架安装
pip config set global.index-url
https://pypi.tuna.tsinghua.edu.cn/simple # 设置清华镜像
pip install django==2.2.2 # 安装django
项目创建
django-admin startproject myproject
运行项目
python manage.py runserver
目录介绍
创建好一款Django项目之后,它已经是具备了一些基本的文件及文件夹
-
manage.py:用来管理当前项目的一个命令行工具
-
myproject:项目主文件夹,包含了项目最基本的配置文件及路由文件
-
__init__.py
:空文件,用来指明当前的myproject为一个可导入的模块包 -
settings.py:项目主要配置文件
-
urls.py:项目主要路由配置文件
-
wsgi.py:项目部署WSGI并发服务器时所需要的配置文件
-
settings.py 配置
这个文件包含了诸多未来我们会操作的Django配置,其中默认提供的选项解释如下
-
BASE_DIR:当前项目工作目录,用来在每一次开启项目时动态找到这个项目运行在当前操作系统下的哪个目录下
-
SECRET_KEY:加密的hash值以及保护某些签名数据的关键密钥
-
DEBUG:调试模式,在这个模式下,你可以很清晰的看到出错信息,如果关闭了,那么出错将会变为状态码或者隐蔽性更高的报错页面
-
ALLOWED_HOSTS:当前主机所拥有的IP哪些可以被外界使用访问Django
-
INSTALL_APPS:Django项目中所有使用的应用名称,自创建子应用也要加到这里,不然ORM数据库无法被识别到
-
MIDDLEWARE:中间件,用来在 请求request和 响应reponse过程中添加功能,比如确保安全性,传输保存Session等
-
ROOT_URLCONF:主路由配置文件,字符串填写 url.py 文件路径
-
TEMPLATES:模板文件配置项
-
WSGI_APPLICATION:WSGI 服务器配置项,找到当前 django 下的 wsgi 引入 APP 文件
-
DATABASES:数据库配置项,默认使用SQLite3,一个本地文件数据库
-
AUTH_PASSWORD_VALIDATORS:检查用户密码强度的验证程序列表,不过是针对admin组件下的用户,而非自定义
-
LANGUAGE_CODE:所使用语言文件,一般国内项目采用zh-Hans
-
TIME_ZONE:所使用时区,一般国内项目采用Asia/Shanghai
-
USE_I18N:国际化支持 18 表示 Internationalization 这个单词首字母 I 和结尾字母 N 之间的字母有 18 个
-
USE_L10N:是localization的缩写形式,意即在 l 和 n 之间有 10 个字母
-
USE_TZ:开启了Time Zone功能,则所有的存储和内部处理,包括 print 显示的时间将是是 UTC 时间格式
-
STATIC_URL:访问静态资源时的URL**路径
子应用
应用是一个专门做某件事的网络应用程序,比如博客系统中的用户功能部分,一个考试系统中管理试卷的部分。
项目则是一个网站使用的配置和应用的集合,一个项目可以包含很多个app**应用,应用**可以被很多个项目使用。
用户部分 APP | 帖子部分 APP |
---|---|
用户登录、用户注册,用户密码找回,用户个人资料管理 | 帖子发布、帖子评论、帖子编辑、帖子点赞点踩、帖子热度排名 |
子应用创建
python manage.py startapp appname
子应用目录结构
app/:app目录
-
admin.py:这个app****所使用表模型在admin注册展示时需要的文件
-
views.py:视图函数文件,编写主要的增删改查等数据逻辑的地方
-
models.py:未来操作数据库时,如果使用ORM****映射关系,那么将使用该文件