python django的模板的基本使用方式

一  在python中使用Django模板的基本方式
1使用原始的模板代码字符串创建一个Tmeplate对象,Django同样支持用指定模板文件路径的方式来创建Template对象
2调用模板对象的render方法并且闯入一条变量context。它将返回一个基于模板展现的字符串,模板中的变量和标签会被context替换掉



#coding=utf-8
from django import template
from django.conf import settings


settings.configure()
t = template.Template('my name is {{ name }}.')
c = template.Context({'name': '王尼玛'})
print t.render(c)
print type(t.render(c))


二python的字典数据类型就是关键字和他们值的一个映射,context和字典十分类似

from django.conf import settings
from django.template import Template, Context


settings.configure()
raw_template = '''your name {{ name }}
your job {{ job }}
your pay {{ pay }}
your brithday {{ bdate|date:"F j, Y" }}'''
t = Template(raw_template)
import datetime
c = Context({'name': 'John Smith',
    'job': 'coder',
    'pay': 2000,
    'bdate' : datetime.date(1993, 7, 24) })

print t.render(c)


三同一模板, 多个实例
from django.template import Template, Context
from django.conf import settings


settings.configure()
Bad
for name in ('John', 'Julie', 'Pat'):
    t = Template('Hello, {{ name }}')
    print t.render(Context({'name': name}))

Good
t = Template("your name is {{ name }}")
for item in ['John', 'waston', 'kylen']:
    c = Context({ 'name' : item})
    print t.render(c)


四深度变量的查找, 通过context传递的简单参数值主要是字符串,然而模板系统可以非常简洁的处理更加简洁的数据结构比如list dictionary
from django.template import Template, Context
from django.conf import settings


settings.configure()
person = {'name':'sally', 'age':21}

t = Template("Her name is {{person.name}}, age {{age}} ")
c = Context({'person':person})
print t.render(c)


五.可以通过句点来访问对象的属性,比如python的date,date有year month和day属性
import datetime
from django.conf import settings
from django.template import Template, Context


settings.configure()
d = datetime.date(2014, 10, 27)
print d.year
print d.month
print d.day


t = Template("The year is {{date.year}},\
    the month is {{date.month}},\
    the day is {{date.day}} ")

c = Context({'date':d})
print t.render(c)


六.通过句点访问自定义对象的属性

from django.conf import settings
from django.template import Template, Context


settings.configure()


class Person(object):
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name


t = Template("Long time no see {{ person.first_name}} {{person.last_name}}")
print t.render(Context({ 'person':Person('Guido', 'Rossum') }))


七。通过句点访问对象的方法(注意只能访问没有参数的方法)jj
from django.conf import settings
from django.template import Template, Context


settings.configure()
t = Template("{{ var }} -- {{ var.upper}} -- {{ var.lower }} -- {{var.isdigit}}")
print t.render(Context({'var':'interesting'}))
print t.render(Context({'var':'124'}))

八句点也可以访问列表索引
from django.conf import settings
from django.template import Template, Context

settings.configure()
mylist = ['lunus', 'rossum']
t = Template("the second name of the list is {{item.2}}")
print t.render(Context({'item':mylist}))
九 句点可以多多级深度嵌套
from django.conf import settings
from django.template import Template, Context

settings.configure()
person = {'name':'linus', 'age':'56'}

t = Template('{{person.name.upper}} -- {{person.age}} years old.')
c = Context({ 'person':person})
print t.render(c)

十方法的其他调用行为




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值