• 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的时间差
    
  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/luckinlee/p/11622241.html
Copyright © 2020-2023  润新知