**
Django 框架内部设计模式
**
一、MVC框架
- MVC模式
有一种程序设计模式叫 MVC,其核心思想是分工, 解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。 - MVC 的全拼为 Model-View-Controller
- M 全拼为 Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
- V 全拼为View,用于封装结果,生成页面展示的 html 内容。
- C 全拼为 Controller,用于接收请求,处理业务逻辑,与 Model 和View 交互,返回结果。
二、MVT框架
- MVT模式
- M 全拼为 Model,与 MVC 中的 M 功能相同,负责和数据库交互,进行数据处理。
- V 全拼为 View,与 MVC 中的 C 功能相同,接收请求,进行业务处理,返回应答。
- T 全拼为 Template,与 MVC 中的 V 功能相同,负责封装构造要返回的 html。
三、创建Django项目:
- 项目目录如下:
- init.py: 说明test1是一个python包。
- settings.py: 项目的配置文件。
- urls.py: 进行url路由的配置。
- wsgi.py: web服务器和Django交互的入口。
- manage.py: 项目的管理文件
四、创建应用
一个项目由很多个应用组成的,每一个应用完成一个功能模块。
命令:python manage.py startapp 应用名
- init.py: 说明目录是一个Python模块。
- models.py: 写和数据库项目的内容, 设计模型类。
- views.py: ,接收请求,进行处理,与M和T进行交互,返回应答。 定义处理函数,视图函数。
- tests.py: 写测试代码的文件。
- admin.py: 网站后台管理相关的文件。
五、应用注册:
建立应用和项目之间的联系,需要对应用进行注册。修改settings.py中的INSTALLED_APPS配置项。
六、启动项目:
运行开发web服务器命令:python manage.py runserver
七、模型类:
- O(objects):类和对象。
- R(Relation):关系,关系数据库中的表格。
- M(Mapping):映射。
django中内嵌了ORM框架,ORM框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作。
在Django中主要是设计类:模型类。
ORM另外一个作用:根据设计的类生成数据库中的表。
- 模型类设计
必须继承与models.Model类。
Models.ForeignKey可以建立两个模型类之间一对多的关系,django在生成表的时候,就会在多端的表中创建一列作为外键,建立两个表之间一对多的关系。 - 模型类生成表
(1)生成迁移文件:
命令:python manage.py makemigrations
(2)执行迁移生成表
命令:python mange.py migrate
根据迁移文件生成表。
生成表名的默认格式:应用名_模型类名小写
八、视图
在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求的,视图函数处理之后,要给浏览器返回页面内容。
- 定义视图函数
视图函数定义在views.py中。
例:
- 图函数必须有一个参数request
- 进行url配置
- url配置的目的是让建立url和视图函数的对应关系。url配置项定义urlpatterns的列表中,每一个配置项都调用url函数。
- url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作。
- 配置url时,有两种语法格式:
(1)url(正则表达式,视图函数名)
(2)url(正则表达式,include(应用中的urls文件))工作中在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系
- url匹配过程
在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写url和视图函数的对应关系。
当用户输入如http://127.0.0.1:8000/aindex时,去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串继续到应用的urls文件中进行正则匹配,匹配成功之后执行视图函数index,index视图函数返回内容hello
python给浏览器来显示。