在视图中使用模板
Step One:
from django.template import Template, Context
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
t = Template("It is now {{ current_date }}.
")
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
|
Step Two:
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
#html = "It is now %s." % now
#t = Template("It is now {{current_date}}.")
t = get_template('current_datetime.html')
html = t.render(Context({'current_date':now}))
return HttpResponse(html)
|
import os.path
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
)
|
Step Three:
from django.shortcuts import render_to_response import datetime
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html',{'current_date':now})
|
render_to_response()
的第一个参数必须是要使用的模板名称。如果要给定第二个参数,那么该参数必须是为该模板创建
Context 时所使用的字典。如果不提供第二个参数,
render_to_response()
使用一个空字典。
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
|
t = get_template('dateapp/current_datetime.html')
|
由于 render_to_response() 只是对 get_template() 的简单封装, 你可以对 render_to_response()
的第一个参数做相同处理。对子目录树的深度没有限制,你想要多少层都可以。
注意: Windows用户必须使用斜杠而不是反斜杠。 get_template() 假定的是 Unix
风格的文件名符号约定。
{% include 'nav.html' %}
{% include "nav.html" %}
|
两个例子的作用完全相同,只不过是为了说明单、双引号都可以通用。
阅读(601) | 评论(0) | 转发(0) |