Django知识小结
model
ORM:对象关系映射
功能:1.根据类生成表结构,定义类之后,执行,会自动在数据库中生成表,不需要在数据中用sql语句进行操作
2.将对象、列表的操作转化为sql语句,增删改查之类的
3.将sql查询到的结果转为对象、列表
优点:极大的减轻了开发人员的工作量,不需要面对因数据库的改变而导致代码不同使用
不需要自己写数据库,只需要通过类,通过模型来操作。
定义模型:模型其实就是类
模型、属性、表、字段之间的关系:一个模型在数据库中对应一张表,在模型中定义属性,对应该模型对照表中的一个字段
为什么要用属性?
告诉admin里面渲染模板是应该用什么样的标签,创建表时,字段是什么类型的。
元选项:排序
模型成员
Objects:Django提供给我们的,
作用:和数据库交互
Filter实现与或非功能。
View视图
作用:视图接受web请求,并且返回web响应
本质:就是一个python函数,在view.py文件中定义】
也可以是一个类,称为视图类
相应:一般是一个网页HTML内容,一个重定向,错误信息页面,json个数
重点:url反向解析
错误:4040视图,是因为在templates目录下直接创建404.html,目录的层级是规定死的。
HttpRequest对象:浏览器给服务器发的数据,request对象属性中的GET、POST都是QueryDict类型的对象,与python中的字典不同的是:QueryDict可以处理一个键带有多个值的请求。
HttpResponse:服务器给浏览器发的数据。返回给浏览器,section cookie
状态保持
template模板
模板由两部分组成:HTML代码
逻辑控制代码:变量,标签,过滤器
作用:很便利的生成Html页面
变量语法:{{var}}
注意:变量名如果不存在,则插入空字符
在模板中调用对象的方法:注意 不能传递参数
<h1>{{stu.say}}</h1>
标签:{%tag%} if和for是最重要的。
反向解析:{%url’namespae:name’p1 p2%}
模板继承:
作用:可以减少页面内容的重复定义,实现页面内容的重用
Block标签:在父模板中与预留区域,让子模板填充
Extend:继承,写在模板文件的第一行
验证码:作用,在用户注册,登陆页面为了防止暴力请求,减轻服务器压力。
防止CSRF的方法
Django高级
静态文件
中间件
富文本
Ajax