zoukankan      html  css  js  c++  java
  • 视图层与模板层

    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 %}
    

     

  • 相关阅读:
    [原创] 为Visio添加公式编辑器工具栏按钮
    Matlab 图论最短路问题模型代码
    「SCOI2011」「LOJ #2441」 棘手的操作
    「APIO2012」「Luogu P1552」派遣
    「JLOI2015」「LOJ #2107」城池攻占
    「Wallace 笔记」LOJ 「数列分块入门」 9 题题解
    「Codeforces 235C」Cyclical Quest
    「Codeforces 1037H」Security
    「UVA 11468」Substring
    「LOJ #2102」「TJOI2015」弦论
  • 原文地址:https://www.cnblogs.com/NGU-PX/p/14189624.html
Copyright © 2011-2022 走看看