一、MVC与MTV模型
(一)MVC
Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:
MVC架构:主流的web框架都是mvc
-Web应用分为模型(M),控制器(C)和视图(V)
-M:model,数据库相关操作
-C:controler控制器,逻辑相关,逻辑代码
-V:视图,模板文件
(二)MTV
Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:
- M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
- T 代表模板 (Template): 负责如何把页面展示给用户(html)。【就是MVC的V层】
- V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。【路由+V=MVC的控制器】
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:
一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。
二、Django请求生命周期
0 近几年python中的几个web框架,sanic,fastapi(异步框架)
1 python中的web服务器都符合wsgi协议
2 web服务器,任何语言都会有一个web服务器,负责把http请求转成这门语言的变量
-python:wsgiref(性能很低),uwsgi(C语言写的),200多并发量
-java:tomcat,jboss(300多并发了)
-php:php服务器
三、虚拟环境讲解,pycharm配置
1 虚拟环境作用:隔离项目,每个项目有自己依赖的模块和包,不同模块和包的版本就不会相互影响
2 pycharm中配置虚拟环境
四、orm简介
(一)orm概述
1 orm:对象关系映射(跟语言无关)
数据库中的表 ----》对应程序的一个类
数据库中的一行数据----》对应程序中的一个对象
2 python中常见orm框架
-django的orm框架
-sqlachemy orm框架
3 java:(扩展),java中写web项目
ssh框架 :spring+struts(有漏洞)+hibernate(orm框架) (我的那个年代)
ssm框架:spring+springmvc+mybatis(orm框架,可以写原生sql)
springboot:sb框架 ,tomcat内置进去了
springcloud:微服务
4 orm能干的事
-创建表(不能创建数据库,手动创建数据库)
-增加删除表内字段
-增删查改数据
(二)django中orm的使用
0 sqlite:也是要给数据库,文件数据库,一个库就是一个文件,不需要单独安装
-咱们现在在用,也要用到关系型数据库,不想装mysql,就可以使用sqlite
-移动开发本地存储数据,存在sqlite中
1 创建个UserInfo表,在models中写一个类
2 表中有字段(类属性),字段有属性,
# 第一步在models中写要给类
class UserInfo(models.Model):
# 字段属性--》后面那个对象决定的,
# 改字段自增,并且是主键
id = models.AutoField(primary_key=True)
# 改字段是varchar类型,长度为32(唯一约束,是否是索引,默认值是,是否可以为空)
name = models.CharField(max_length=32)
# 密码字段
password =models.CharField(max_length=64)
# 第二步,把表创建出来(执行两个命令)
-python3 manage.py makemigrations # 这条命令会在migrations创建一条记录,数据库变更记录
-python3 manage.py migrate # 把更改同步到数据库,若数据库没有变化,执行此命令则没变化(删除字段在models中注释代码即可完成删除字段)