zoukankan      html  css  js  c++  java
  • Django框架模版渲染与过滤器使用

    模版渲染

    语法

    #{{变量名}}  HTML页面中使用
    	用后台返回的变量来替换HTML中的字段
        #获取后台返回的name变量,把他放到标签中
        <h1>{{ name }}</h1>
    #{% 处理逻辑相关的  %}
    	在前段用逻辑处理后态返回的数据,比如for循环,if判断,with取别名等python代码逻辑
        <ul>
            #获取后带返回的列表lst,循环列表,生成多个li标签
            {% for i in lst %}
            <li>{{ i }}</li>
            #声明for循环逻辑的结束
            {% endfor %}
        </ul>
        
        
    '''后台返回数据的方式'''
    #在请求返回的逻辑中,定义变量,用render的方式返回HTML页面的时候,把要返回的数据放在第三个参数,返回给前段,
    def home(request):
        time=datetime.datetime.now()
        name='张达'
        dic={'name':'张达','age':'88','sex':[11,22,33]}
        lst=[11,22,33]
        lst1=[]
        class person():
            n = '张达666'
            def p(self):
                return '张达777'
        #返回数据的方式一: 使用locals()方法,获取当前函数中的所有局部变量,返回给前端
        return render(request,'home.html',locals())
    	#返回数据的方式er:使用字典的方式返回数据,字典键相当于是给数据去一个别名,值就是数据
        return render(request,'home.html',{'name':name,'time':time,'dic':dic})
    

    万能的点

        #通过索引获取列表的值
        <h1>{{ lst.1 }}</h1>
        #通过实例化对象来调用方法,获取返回值和类中的局部变量
        <h1>{{ obj.p }}</h1>
        #获取字典的所有键,值,键值对,获取的是一个
        <h1>{{ dic.items }}</h1>
        <h1>{{ dic.keys }}</h1>
        <h1>{{ dic.values }}</h1>
    

    过滤器

    '''都是在前端页面中使用'''
    #default
    	如果一个变量是false或者为空,使用给定的默认值。 否则,使用变量的值。
        {{ value|default:"nothing"}}#给value这个值设置一个默认值,如果value没有传值或者值为空的话就显示nothing
    #length
    	返回值的长度,作用于字符串和列表
        {{ value|length }}#返回value的长度,如 value=['a', 'b', 'c', 'd']的话,就显示4.
    #filesizeformat
    	将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)。例如:
        {{ value|filesizeformat }}#如果 value 是 123456789,输出将会是 117.7 MB。
    #slice
    	切片,如果 value="hello world",还有其他可切片的数据类型
        {{value|slice:"2:-1"}}
    #date
    	格式化时间,如果 value=datetime.datetime.now()
        {{ value|date:"Y-m-d H:i:s"}}
    #safe
    	后端发送一个字符串形式的TML标签,前端可以通过safe方法,把这个字符串变成前端标签
        value = "<a href='#'>点我</a>"   和   value="<script>alert('123')</script>"
        {{ value|safe}}#会把value变成一个标签,放到页面上
    #truncatechars
    	如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾
        {{ value|truncatechars:9}} #注意:最后那三个省略号也是9个字符里面的,也就是这个9截断出来的是6个字符+3个省略号,配合前端的点击事件就可以展开这三个点
    #truncatewords
    	在一定数量的字后截断字符串,是截多少个单词,以空格来计算字符串
        例如:‘hello girl hi baby yue ma’,
        {{ value|truncatewords:3}}  #得到的结果是 'hello girl h1...'
    #cut
    	移除value中所有的与给出的变量相同的字符串
        {{ value|cut:' ' }}#如果value为'i love you',那么将输出'iloveyou',移除空格
    #join
    	使用字符串连接列表,{{ list|join:', ' }},就像Python的str.join(list)
        <h1>{{ l1|join:'+' }}</h1>
    #timesince(了解)
    	计算时间差
        {{ blog_date|timesince:comment_date }}#comment_date减去blog_date的时间的时间差
    #timeuntil(了解)
    	和timesince一样,不过时间可以指定
    	{{ conference_date|timeuntil:from_date }}#conference_date减去from_date的时间差
    
  • 相关阅读:
    第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据
    第一百二十六节,JavaScript,XPath操作xml节点
    第一百二十五节,JavaScript,XML
    第一百二十四节,JavaScriptCookie与存储
    in_array严格模式和普通模式的区别
    thinkphp解决表单令牌问题
    php操作Memcache示例
    flash引入
    自己制作简单的可编辑并添加表情的文本编辑器
    php中mysqli 处理查询结果集的几个方法
  • 原文地址:https://www.cnblogs.com/luckinlee/p/11622241.html
Copyright © 2011-2022 走看看