加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

模板语言

发布时间:2020-12-15 23:03:48 所属栏目:安全 来源:网络整理
导读:一模版的组成 组成:HTML代码+逻辑控制代码 二 逻辑控制代码的组成 1 ?变量(使用双大括号来引用变量): ???? 语法格式:?????? {{var_name}} 可以通过双大括号的方式引用后台的变量 ? ? Template和Context对象在生成模板的时的关系 ? python manange.py s

一模版的组成

组成:HTML代码+逻辑控制代码

二 逻辑控制代码的组成

1 ?变量(使用双大括号来引用变量):

???? 语法格式:?????? {{var_name}}
可以通过双大括号的方式引用后台的变量

?

?
Template和Context对象在生成模板的时的关系
?

>>> python manange.py shell  (进入该django项目的环境)
>>> from django.template import Context,Template
>>> t = Template(My name is {{ name }}.)
>>> c = Context({name: yewenhao})
>>> t.render(c)
结果:My name is yewenhao

#同一个模板创建了一次,我们可以调用多次

# Low
for name in (John,Julie,Pat):
    t = Template(Hello,{{ name }})
    print t.render(Context({name: name}))

# Good
t = Template(Hello,{{ name }})
for name in (John,Pat):
    print t.render(Context({name: name}))
View Code

2? 万能的句点号

def index(wy):
    s1 = [123,345,567]
    s2 = {"username":"叶文浩"}
    return render(wy,"login.html",locals())

#HTML页面
#在列表中
<h2>{{s1.0}}</h2>    
#在字典中
<h2>{{s2.username}}</h2>

结果
123
叶文浩
列表,字典

#同样,也可以通过句点来访问对象的属性。 比方说, Python 的 datetime.date 对象有
#year 、 month 和 day 几个属性,你同样可以在模板中使用句点来访问这些属性:

>>> from django.template import Template,Context
>>> import datetime
>>> d = datetime.date(1993,5,2)
>>> d.year
1993
>>> d.month
5
>>> d.day
2
日期

def attr_test1(eq):
    class Person:
        def __init__(self,name,age):
            self.name = name
            self.age = age

    s1 = Person("yewenhao",18)
    obj = Person("lijian",26)
    s2 = [123,567,789]
    return render(eq,"attr_test1.html",locals())

#html页面
<h1>{{s1}}</h1>
<h1>{{s1.name}}</h1>
<h1>{{s1.age}}</h1>

#结果
<blog.views.attr_test1.<locals>.Person object at 0x0000000004173BA8>
yewenhao
18
自定义一个类

# 点语法也可以用来引用对象的方法。 例如,每个 Python 字符串都有 upper() 和isdigit()
# 方法,你在模板中可以使用同样的句点语法来调用它们:
>>> from django.template import Template,Context
>>> t = Template({{ var }} -- {{ var.upper }} -- {{ var.isdigit }})
>>> t.render(Context({var: hello}))
hello -- HELLO -- False
>>> t.render(Context({var: 123}))
123 -- 123 -- True
引用对象的方法

?

3? 变量的过滤器(filter)的使用

 # 1  add          :   给变量加上相应的值
   #
   # 2  addslashes   :    给变量中的引号前加上斜线
   #
   # 3  capfirst     :    首字母大写
   #
   # 4  cut          :   从字符串中移除指定的字符
   #
   # 5  date         :   格式化日期字符串
   #
   # 6  default      :   如果值是False,就替换成设置的默认值,否则就是用本来的值
   #
   # 7  default_if_none:  如果值是None,就替换成设置的默认值,否则就使用本来的值


#实例:

#value1="aBcDe"
{{ value1|upper }}<br>

#value2=5
{{ value2|add:3 }}<br>

#value3=‘he  llo wo r ld‘
{{ value3|cut:  }}<br>

#import datetime
#value4=datetime.datetime.now()
{{ value4|date:Y-m-d }}<br>

#value5=[]
{{ value5|default:空的 }}<br>

#value6=‘<a href="#">跳转</a>‘

{{ value6 }}

{% autoescape off %}
  {{ value6 }}
{% endautoescape %}

{{ value6|safe }}<br>

{{ value6|striptags }}

#value7=‘1234‘
{{ value7|filesizeformat }}<br>
{{ value7|first }}<br>
{{ value7|length }}<br>
{{ value7|slice:":-1" }}<br>

#value8=‘http://www.baidu.com/?a=1&b=3‘
{{ value8|urlencode }}<br>
    value9=hello I am yuan
View Code

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读