Please enable JavaScript.
Coggle requires JavaScript to display documents.
MTV, MTV - Coggle Diagram
MTV
MTV
Template
MTV中的template
充当数据展示的角色
在Django中使用就是Django模板
模板组成
静态的HTML
模板语法
变量
{{ var }}
变量的命名遵循命名规范
来源
视图中传递过来的
标签中,逻辑创建出来的
标签
{% 表达式 %}
标签分为单标签和双标签
双标签必须闭合
结构标签
block
是一个坑或者块
先规划好,后面再填内容
首次出现是规划
第二次出现是填坑
第三次及以上出现也是填坑,但是会覆盖之前的内容
block.super:可以避免内容被覆盖
extends
继承之前定义的模板
面向对象的体现
提高模板的复用率
include
包含
将其他模板作为一部分,嵌入到我们的页面上
block+extends
化整为零,将一个模板分成几个页面写
block_include
由零聚一
将几个模板写在一个页面
功能标签
if
分支,判断
if-else
if-elif-else
for
循环,重复
for i in xxxx
empty
forloop
ifequal
是否相等
ifnotequal
是否不相等
withratio
乘法
{% widthratio 100 1 5 %}=500:表示100*5/1
除法
{% widthratio 100 5 1 %}=20:表示100*1/5
过滤器:“ | “
upper
lower
将前面的输入作为后面的输出·
safe
{{ code | safe }}
add
注释
单行注释
{# #}}
多行注释
{% comment %}
模板加载
加载模板
渲染模板
请求状态码
2xx
成功
3xx
重定向
4xx
客户端错误
5xx
服务端错误
Views
视图函数
相当于controller作用
控制器,接受用户输入
MTV中的views
协调模板模型,对数据进行处理
路由器
urls
urlpatterns
url
根路由
第一个参数:正则匹配的路径
第二个参数:包含哪个路由
通过include形式将整个子路由添加进来
第三个参数:namespace
子路由
前两个参数一致
第三个参数name
以后我们会根据namespace:name动态获取路由
接受参数
路径参数
位置参数
一个()代表一个参数
代表视图函数上的一个参数
使用()包含规则
参数个数应该和视图函数的参数一致,一一对应,(除默认的request)
关键字参数
视图函数中存在和()中name对应的参数
可以在()制定参数名字(?p<name>reg)
参数不区分顺序
个数需要保持一致,一一对应
请求参数
反向解析
在模板中使用
{% url %}
{% url 'namespace:name'%}
如果存在位置参数
{% url 'namespace:name' value1 value2 ...%}
如果存在关键字参数
{% url 'namespace:name' key1=value1 key2=value2 ...%}
规则
按照书写规则
从上到下匹配
没有最优匹配的概念,匹配到就停了
双R
Request
method
GET
POST
encoding
path
GET
QueryDict
类字典结构
一个key可以对应多个值
get
key-value
getlist
包含了请求各种信息
POST
Django框架根据Http请求报文自动生成的一个对象
FILES
COOKIES
session
is_ajax
META
元信息
客户端所有信息
Response