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模板记两种特殊符号: {{ }}和 {% %}
{{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作。
{{ 变量名 }} 变量名由字母数字下划线组成, 点( . )在模板语言中有特殊的含义,用来获取对象的相应属性值.
. 列表 索引 . 字典 键 模板系统遇见一个点时:会按照下面顺序去查询:(优先级) 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‘ %}
原文地址:https://www.cnblogs.com/zhangchen-sx/p/10301653.html
时间: 2024-11-05 18:27:41