您的位置:首页 > 编程语言 > Go语言

The Django Book - 第四章 模板2

2013-11-01 00:02 459 查看
模板(相应)使用的几种方式:

1.使用HttpResponse返回字符串HTML

from django.http import HttpResponse
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)

2. 使用普通模板

from django.http import HttpResponse
from django.template import Template, Context
from django.template.loader import get_template
def current_datetime(request):
now = datetime.datetime.now()
t = Template('<html><body>It is now {{ current_time }}.</body></html>')
c = Context({'current_time': now})
html = t.render(c)
return HttpResponse
return HttpResponse(htm;)

3.使用文件模板

from django.http import HttpResponse
from django.template import Template, Context
def current_datetime(request):
now = datetime.datetime.now()
t = get_template('current_datetime.html')
c = Context({'current_time': now})
html = t.render(c)
return HttpResponse(html)

4.简化文件模板render_to_response

form django.shortcuts import render_to_response
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', {'current_time': now})

5.简化传入变量;注:会传入所有的局部变量

from django.shortcuts import render_to_response
def current_datetime(request):
current_time = datetime.datetime.now()
return render_to_response('current_datatime.html', locals())

include模板标签
{% include template_name %} template_name基本上是字符串,也可为变量

模板继承
{% extends template_name %}
1.必须为第一个模板标记
2. 父模板中标签{% block %}尽量多
3. {% block.super %} --还不知道如何使用
4. template_name基本上是字符串,也可为变量

模板加载顺序:
1.'django.contrib.staticfiles.finders.FileSystemFinder', TEMPLATE_DIRS中定义的路径
2.'django.contrib.staticfiles.finders.AppDirectoriesFinder', 各个应用下templates文件夹下

其他:
1.文件中使用__file__为该python脚本的路径+文件名; 在控制台无效
2. locals():局部变量字典集合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: