一、Template 模版
- MTV中的Template
- 充当数据展示的角色
- 在Django中使用的就是Django模版
- 模版组成
- 1、静态HTML
- 2、模版语法
- 变量 {{ var }}
- 变量名遵循命名规范
- 来源
- 视图中传递过来的
- 标签中,逻辑创建出来的
- 标签 {{ % exp % }}
- 将标签分为单标签和双标签
- 双标签必须闭合
- 结构标签
- block 块、坑
- 用于规划,填充页面
- 首次出现代表规划、
- 第二次出现代表填坑
- 第三次出现也代表填坑,默认会覆盖
- 第N次...
- 如果不想被覆盖 block.super
- extends 继承
- 面向对象的体现
- 提高模版的复用率
- include 包含
- 将其它模版作为一部分,包裹到我们的页面中
- block + extends 化整为零
- include + XXX 由零聚一
- block 块、坑
- 功能标签
- if
- 分支
- 判断
- if - else
- if - elif - else
- for
- for i in xxx
- empty
- forloop
- ifequal
- ifnotequal
- withratio
- if
- 过滤器
- 将前面的输入作为后面的输出
- upper
- lower
- safe
- 确认安装
- 进行渲染
- add
- 注释
- 单行 {# #}
- 多行{% comment %}
- 变量 {{ var }}
- 模版加载
- 加载模版
- 渲染模版
- 请求状态码
- 2xx:成功
- 3xx:重定向
- 4xx:客户端错误
- 5xx:服务端错误
二、Views
- 视图函数,MTV中的Views相当于Controller作用
- 控制器 接收用户输入(请求)
- 协调模版模型,对数据进行处理
- 路由器
- urls
- urlpatterns
- url
- 根路由中,会使用include形式将整个子路由添加进来
- 第一个参数 路由路径
- 第二个参数 include包含的是哪个APP
- 第三个参数 namespace
- 子路由中,前两个参数一致
- 第三个参数 name
- 可以根据namespace:name 动态获取路由(path)
- 根路由中,会使用include形式将整个子路由添加进来
- 接收参数
- 路径参数
- 位置参数
- 使用圆括号包含规则
- 一个圆括号代表一个参数
- 代表视图函数上的一个参数
- 参数个数和视图函数上的参数一一对应(除默认request)
- 关键字参数
- 可以在圆括号指定参数名字(?P<name>reg)
- 视图函数中存在和圆括号中name对应的参数
- 参数不区分顺序
- 个数也需要保持一致,一一对应
- 位置参数
- 请求参数
- 路径参数
- 反向解析
- 在模版中使用
- {% url %}
- {% url 'namespace:name' %}
- 如果存在位置参数 {% url 'namespace:name' value1 value2 ... %}
- 如果存在关键字参数 {% url 'namespace:name' key1=value1 key2=value2 %}
- 规则
- 按照书写规则,从上到下匹配
- 没有最优匹配的概念,匹配到此就停止
- urls
- 双R
- Request
- django框架根据Http请求报文自动生成的一个对象
- 包含了请求各种信息
- path
- method
- GET
- POST
- encoding
- GET
- QueryDict
- 类字典结构
- key-value
- 一个key可以对应多个值
- get
- getlist
- POST
- FILES
- COOKIES
- session
- is_ajax()
- META
- 元信息
- 客户端的所有信息,包括ip、用户名等
- Response
- Request