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