MVC 框架 -- Model View Controller
软件工程中的一种软件架构模式
模型 (Model), 视图(View) 和控制器(Controller), 具有耦合性低, 重用性高, 生命周期成本低等优点.
MTV 框架 -- Model(模型),Template(模板)和 View(视图), 也就是 MTV 框架.
Model(模型): 负责业务对象与数据库的对象(ORM)
Template(模版): 负责如何把页面展示给用户
View(视图): 负责业务逻辑, 并在适当的时候调用 Model 和 Template
此外, Django 还有一个 urls 分发器, 它的作用是将一个个 URL 的页面请求分发给不同的 view 处理, view 再调用相应的 Model 和 Template
Django 之模板
Django 模板记两种特殊符号: {{ }}和 {% %}
{{ }}表示变量, 在模板渲染的时候替换成值,{% %}表示逻辑相关的操作.
{{ 变量名 }} 变量名由字母数字下划线组成, 点 ( . ) 在模板语言中有特殊的含义, 用来获取对象的相应属性值.
. 列表 索引
. 字典 键
模板系统遇见一个点时: 会按照下面顺序去查询:(优先级)
1 在字典中 2 属性或方法 3 数字索引
filters-- 过滤器 -- 修改变量的显示结果
{{ value|filter_name: 参数 }} 参数最多一个
default 默认
'string_if_invalid':'找不到', 无效字符串
filesizeformat -- 文件大小个格式化
add +
length 返回 value 的长度
slice 切片 步长 方向
{{ str|truncatechars:9}} <!-- 截断 -->
date 格式化 import datetime
时间{{ now|date:'Y-m-d H:i:s'}} -- 规定
{{ now }} -- settings --DATETIME_FORMAT = 'Y-m-d H:i:s' USE_L10N = False
safe (安全) -- 不做转义 xss 跨站脚本攻击 Django 默认做转义
{{ a_html|safe }} {{ JS|safe }}
难 -- {'parentloop': {}, 'counter0': 0, 'counter': 1, 'revcounter': 2, 'revcounter0': 1, 'first': True, 'last': False} -- 倒叙 reverse
for ... empty //
不支持 连续判断 10>5>1
- JS//10>5>1 --> false
- 10>5==1 --> true
with -- 变量重新赋值
csrf_token ---/CSRF(Cross-site request forgery)跨站请求伪造
{% csrf_token %} --> form 表单中
---------------------------------------
母版 -- 减少代码 公用的部分放进去
分两步:
1 定义母版 base 普通页面 HTML 包含多个页面的公共部分, 在模板中定义 block 块, 占位 让子页面进行替换 .
2 子页面 继承母版 {% extends '母版文件名' %}
重写 block
注意:
{% extends '母版文件名' %} -- 写在第一行 母版文件名加引号
模板中写多个 block 预留 CSS JS 样式位置
** 组件 ** 写死的 HTML {% include '组件. html' %}
来源: http://www.bubuko.com/infodetail-2929566.html