• Django视图层、模板层


    过滤器方法

    • upper 大写方式输出
    • add 给value加上一个数值
    • capfirst 第一个字母大写
    • center 输出指定长度的字符串,把变量居中
    • cut 删除指定字符串
    • date 格式化日期
    • default 如果值不存在,则使用默认值代替
    • length 返回列表中元素的个数或字符串长度
    • length_is 检查列表,字符串长度是否符合指定值

    标签的方法

    for标签

    {% for 临时遍历 in 序列%}....{%endfor%}

    • forloop.counter 当前循环的索引值(从1开始)
    • forloop.counter0 当前循环的索引值(从0开始)
    • forloop.revcounter 当前循环的倒序索引(从1开始)
    • forloop.revcounter0 当前循环的倒序索引(从0开始)
    • forloop.first 当前循环是不是第一次循环(布尔值)
    • forloop.last 当前循环是不是最后一次循环(布尔值)

    for...empty标签

    如果变量名不存在或者内容为空的时候显示{%empty%}中的内容,否则不执行

    {% for game in games%}
    ...{%empty%}...{%endfor%}
    

    ...if标签

    (1)if 标签
    格式:
    {% if 判断条件 %}
    … {% endif %} 注: if 语句支持 and、or、==、<、>、!=、<=,>=,in、not in、is、is not判断
    (2)if … else 标签
    格式:
    {% if name_length|length > 6 %}
    …
    {% else %}
    …
    {% endif %}
    (3).if…elif…else 标签
    格式:
    {% if name_length|length > 6 %}
    …
    {% elif age == 20 %}
    …
    {% else %}
    …
    {% endif %}
    

    CBV流程

    1.首先要编写自定义的视图类,必须继承View类。
    2.然后在路由中配置URL调用视图类的as_View方法,也就是view类的as_view方法
    3.as_view是一个闭包函数,返回的是view方法。
    4.view方法先实例化类视图对象,然后给类视图对象赋值,最后调用dispatch方法
    5.dispatch方法先判断该请求方式是否在它所有的方法中,然后通过反射getattr的请求方式获取指定的请求方法(也就是对应的函数),并执行相应的代码块

    Django请求生命周期流程图

    自定义过滤器,标签的步骤

    • 在settings中的INSTALLED_APPS添加当前app的名字,不然django无法找到自定义的过滤器或标签
    • 在文件夹app01中创建子文件templatetags
    • 在templatetags新建任意py文件,在该文件中自定义过滤器或标签
    • 自定义过滤器或标签必须重新启动django生效
  • 相关阅读:
    day3
    day2
    day1-存储
    day5-iptables
    MySQL之补充
    11.18
    11.17
    junit基础学习之-测试controller层(2)
    junit基础学习之-简介(1)
    外键和级联
  • 原文地址:https://www.cnblogs.com/lzss/p/11755227.html
Copyright © 2020-2023  润新知