1. 视图层
1.1 request 请求对象
(1)对象的属性
request.GET request.POST request.body # 原生的请求体的内容 request.path # 获取当前请求的url request.method # 获取当前请求的方式
(2)对象的方法
get_full_path() # 获取当前请求的完整url 例子: 1111 /app01/login2/ 5555 /app01/login2/?name=liuzhihua&age=18 is_ajax() # 判断当前请求是否是ajax请求, 返回值为布尔
1.2 HTTPResponse响应对象(响应三剑客)
render 返回模板文件 必须参数:request、模板文件、可选参数(数据) HTTPResponse:返回字符串 redirect:重定向
2. 模板层
2.1 变量
{{ name }} 列表: {{list.index}} 字典: {{dict.key}} 对象: 属性: {{obj.属性}} 方法: {{obj.方法}}
2.2 过滤器(最多两个参数)
{{ obj|filter_name:Param}}
2.3 标签
{% tag_name param %} for循环 if流程控制 csrf_token 跨站请求伪造保护
2.4 自定义标签器和标签
-
- 确保APP能正常使用
- 在APP下创建templatetags目录名称(不能是其他名称)
- 创建一个.py文件
from django import template register = template.Library() #register的名字是固定的,不可改变 @register.filter def my_fitler(v1, v2): """自定义过滤器""" return v1 * v2 @register.simple_tag def my_tag(v1, v2, v3): """自定义标签""" return v1 * v2 * v3
2.5 模板里进行加载
{% load my_tags %}
2.6 调用即可
{{ temp_list.1|my_fitler:temp_list.2 }}{% my_tag temp_list.1 temp_list.2 temp_list.3 %}