zoukankan      html  css  js  c++  java
  • 模板层

    变量查询

    使用.进行深度查询(可以查询列表的索引,字典的key以及对象的方法,但是方法不能加括号,所以只能使用没有参数的方法)

    views中变量准备:
    now = datetime.datetime.now()
    emp_list = []
    dic = {'name': 'lqz', 'age': 18, 't': [1, 2, [2, 3]]}
    emp_str = ''
    list2 = [1,2,3,6,5]
    list3 = [[1,2,3],[4,5,6],[7,8,9]]
    list4 = [[],[4,5,6],[7,8,9]]
    tag_str = '<a href="https://www.baidu.com">点我</a>'
    

    过滤器

    返回不同格式的日期
    {{ now|date:'Y-m-d H:i:s' }}
    {{ now|date }}      # 有默认值可以不传参数
    
    如果一个变量是false,使用给定的默认值。否则,使用变量的值。
    {{ emp_list|default:'我是空列表' }}
    {{ emp_str|default:'我是空字符串' }}
    
    返回值的长度。它对字符串和列表都起作用
    {{ 'asdg'|length }}
    
    将值格式化为一个 “人类可读的” 文件尺寸(例如 '13 KB', '4.1 MB'{{ '1024'|filesizeformat }}
    
    切片操作
    {{ 'sadgdasfdsa'|slice:'1:4' }}
    {{ list2|slice:'1:3' }}
    
    如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾,...会计入进长度
    字符数:
    {{ 'asgasdfasd'|truncatechars:'8' }}
    单词数:...省略号不计入长度
    {{ 'i am strong'|truncatewords:'2' }}
    
    safe过滤器,可以使带标签的字符串直接被识别,不然会用&gt;代替>{{ tag_str|safe }}
    也可以在Views视图中处理
    from django.utils.safestring import mark_safe
    tag_str = mark_safe(tag_str)
    
    俩参数可以传字符串和数字
    {{ 12|add:3 }}
    {{ 'eee'|add:"3rrr" }}

    标签

    for 和 if 标签,for中的forloop
    {% for foo in list3 %}
        {% for i in foo %}
            {% if forloop.first %}
                {{ i|add:'10' }}
                {% elif forloop.last %}
                {{ i|add:'100' }}
                {% else %}
                {{ i }}
            {% endif %}
        {% endfor %}
    {% endfor %}
    for中的empty
    {% for foo in emp_str %}
        {% empty %}
        {{ '空' }}
    {% endfor %}
    with标签
    注意:等号两边不能有空格
    {% with aa=dic.name%}
        {{aa}}
    {%endwith%}
    
    {% with dic.name as name %}
        {{ name }}
    {% endwith %}

    自定义过滤器

    1 先去setting里面把app名字配置上
    2 再app目录下创建一个templatetags模块
    3 写py文件(my_test.py4 from django import template
    5 register=template.Library()
    6 写函数
        @register.filter(name='my_add')
        def my_add(a,b):
            if type(a) == type(b):
                return a+b
            else:
                return str(a)+str(b)
    
    7 模板内:
        {% load my_test %}
        {{'lqz'|my_add:'isbig' }}  #最多只能传两个参数
    

    自定义标签

    1 先去setting里面把app名字配置上
    2 再app目录下创建一个templatetags模块
    3 写py文件(my_test.py4 from django import template
    5 register=template.Library()
    6 写函数 
        @register.simple_tag(name='factorial')
        def factorial(x):
            if type(x) != int:
                return False
            num = 1
            for i in range(x):
                num *= i+1
            return num
    7 模板:
        {% load my_test %}
        {% factorial 5 %}  #以空格做分割,传参数
    

    静态文件导入

    方法一:
    <link rel="stylesheet" href="/static/mycss.css">
    
    方法二:改static文件的文件名不会受到影响
    {% load static %}
    <link rel="stylesheet" href="{% static 'mycss.css' %}">
  • 相关阅读:
    关于git 拉取的时候一直弹输入密码的问题
    开始日期结束日期check问题
    关于boostrap 排版问题
    【DP_树形DP专题】题单总结
    【DP_背包专题】 背包九讲
    Ubuntu不卸载ibus前提下安装搜狗输入法
    Ubuntu下Java环境配置
    Ubuntu下gcc及g++环境配置
    Ubuntu下VIM(GVIM)环境配置
    PAT 1065 A+B and C (64bit) (20)
  • 原文地址:https://www.cnblogs.com/luck-L/p/9599796.html
Copyright © 2011-2022 走看看