• Django之模板


      模板就是展示给用户的网页,其中包含的可变数据就是在数据库中获取的。

    模板语法之变量

    句点符  {{var}}

    在views视图函数中传递数据给模板,就可以在模板中以句点符获取

    def index(request):
        import datetime
        s="hello"
        l=[111,222,333]    # 列表
        dic={"name":"yuan","age":18}  # 字典
        date = datetime.date(1993, 5, 2)   # 日期对象
     
        class Person(object):
            def __init__(self,name):
                self.name=name
     
        person_yuan=Person("yuan")  # 自定义类对象
        person_egon=Person("egon")
        person_alex=Person("alex")
     
        person_list=[person_yuan,person_egon,person_alex]
     
     
        return render(request,"index.html",{"l":l,"dic":dic,"date":date,"person_list":person_list})
    View Code

    模板下

    <h4>{{s}}</h4>
    <h4>列表:{{ l.0 }}</h4>
    <h4>列表:{{ l.2 }}</h4>
    <h4>字典:{{ dic.name }}</h4>
    <h4>日期:{{ date.year }}</h4>
    <h4>类对象列表:{{ person_list.0.name }}</h4>
    

     这样再在浏览器上渲染就是带着具体数据的一些<h4>

    模板之过滤器

    语法:{{obj | filter__name:param}}

    default

      如果变量为空或者false,使用给定的默认值,否则为变量值。例如:{{ value|default:"nothing" }}

    length

      返回变量的长度,对字符串和列表都适用。例如:{{ value|length }}如果 value 是 ['a', 'b', 'c', 'd'],那么输出是 4。

    filesizeformat

      将值格式化为人类可读的文件大小,例如:{{ value|filesizeformat }}如果 value 是 123456789,输出将会是 117.7 MB。  

    date

     转化成日期格式 {{ value|date:"Y-m-d" }} 

    slice

    切片如:{{ value|slice:"2:-1" }}

    truncatechars

      如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾。

    参数:要截断的字符数     例如:{{ value|truncatechars:9 }}

    safe

      Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

    比如:{{ value|safe}}

    模板之标签    {% tag%}

    for标签

    遍历列表元素

    {% for person in person_list %}
        <p>{{ person.name }}</p>
    {% endfor %}

    遍历字典

    {% for key,val in dic.items %}
        <p>{{ key }}:{{ val }}</p>
    {% endfor %}  

     循环序号可以通过{{forloop}}显示

    for。。empty标签

    {% for person in person_list %}
        <p>{{ person.name }}</p>
    
    {% empty %}
        <p>sorry,no person here</p>
    {% endfor %}

    if标签

    {% if num > 100 or num < 0 %}
        <p>无效</p>
    {% elif num > 80 and num < 100 %}
        <p>优秀</p>
    {% else %}
        <p>凑活吧</p>
    {% endif %}

    with

    使用一个简单地名字缓存一个复杂的变量,当你需要使用一个“昂贵的”方法(比如访问数据库)很多次的时候是非常有用的

    例如:

    {% with total=business.employees.count %}
        {{ total }} employee{{ total|pluralize }}
    {% endwith %}

    csrf_token

    这个标签用于跨站请求伪造保护,主要用在form表单提交。

  • 相关阅读:
    MongoDB修改器和pymongo
    MongoDB基本操作
    西游之路——python全栈——CRM前端页面布局及登录页面开发
    西游之路——python全栈——CRM项目之表结构设计
    西游之路——python全栈——CRM需求分析及架构设计
    西游之路——python全栈——通用模块(pager、check_code、form验证)
    西游之路——python全栈——报障系统之后台管理
    jquery checkbox选中、改变状态、change和click事件
    西游之路——python全栈——报障系统之需求分析、数据库设计和目录结构
    西游之路——python全栈——瀑布流
  • 原文地址:https://www.cnblogs.com/yuliangkaiyue/p/9932591.html
Copyright © 2020-2023  润新知