1、ORM基本原理
定义:ORM 全称是 Object Relational Mapping
中文含义为对象关系映射。
作用:把对象与数据库中的表关联起来,对象的属性映射到表的各个字段,同时,它把对表的操作对应到对对象的操作,实现了对象到SQL,SQL 到对象的过程转换。model<====>数据库表
2、MTV设计模式和MVC设计模式
MTV中视图用于接收用户的请求和转发响应
是Model和Template的桥梁。
M 代表模型(Model):数据存取层,负责业务对象和数据库的关系映射(ORM),处理所有与数据相关的事务,提供在数据库中管理【添加、修改、删除】和查询记录机制。
T 代表模板 (Template):表现层,负责如何把页面展示给用户(html)。
V 代表视图(View):业务逻辑层,负责业务逻辑,并在适当时候调用Model和Template组合在一起,通常被认为联通M与T的桥梁。
MTV设计模式:
MVC设计模式:
3、类视图实现的基本原理
使用类的抽象,将共性抽离出来,使用继承去实现特定逻辑,从而实现代码复用。
4、Form表单对象的作用
1.实现对所有字段的验证
每一个Form对象实例都有is_valid方法,根据字段的定义验证实例的各个字段是否合法。合法返回True,并将数据存储到字典类型的Cleaned_data属性中。
2.根据字段定义生成HTML
表单实例自动生成html表单元素,默认输出HTML表格,但不提供
form.as_p、form.as_table、form.as_ul
5、页面跳转和重定向的区别
常用于重定向操作
reverse(viewname,#视图名或path的name属性
args=None,#元祖或列表型位置参数
kwargs=None,#字典类型参数,与args二选一
current_app=None)#指示视图所表示的应用
状态码301永久重定向,如域名跳转
302临时重定向。登录成功后跳转到首页
特征:重定向浏览器url会发生改变
redirect(to ,#url地址
*args,#列表类型参数,同reverse用法
permanent=fasle,#false=302,true=301
**kwargs )#字典类型参数,同reverse用法
6、CSRF
CSRF(Cross Site Request Forgery)也就是跨站请求伪造,实现的原理是CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的。
应对方法,增加Token
7、CBV和FBV对比
FBV(Function Based Views)基于函数的视图
优点:简单,便于理解
缺点:代码无法复用
CBV(Class Based Views)基于类的视图
优点:面向对象方式,代码可复用(实现了主要逻辑),减少代码
缺点:难于理解