Django开发(四)——Django的模板

来源:互联网 发布:淘宝开源项目 编辑:程序博客网 时间:2024/05/19 20:47

在上一节中,我们在view.py文件中,编写返回的视图页面,这使逻辑代码和html代码耦合在一起,不利于项目的分工开发和后续的修改,并且,在view中也是很难对页面的形式进行控制的。

好在Django为我们提供了模板系统,也就是template,MTV中的T。Template可以将python代码嵌入在html代码中,并可以由view中的方法,想template中传递对象,最后,view中渲染该模板的方法,会将其返回给用户。

需要注意的是,我们需要在settings.py文件中,对模板文件的存放路径做一些设置,我是将template文件夹放在项目根目录下的

BASE_DIR = os.path.dirname(os.path.dirname(__file__))TEMPLATE_DIRS = (    os.path.join(BASE_DIR, 'template/'),)

下面给出一个view中方法渲染并返回template例子

def getPassageList(request,type_id):    type = get_object_or_404(PassageClass, pk=type_id)    passagelist=type.passage_set.all();     return render(request, 'blog/passagelist.html', {'type': type,'passagelist':passagelist}) 

template文件

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>{{type.classname}}——漂泊的胡萝卜</title></head><body><h1>漂泊的胡萝卜</h1>{% for passage in passagelist %}<li><a href="/passage/{{ type.id }}/{{passage.id}}">{{ passage.title }}</a></li>{% endfor %}</body></html>

在此,view中的方法将一个包含若干个passage的list对象传给模板文件,模板文件中将list中的信息结合事先写好的html结合,得到最终的页面。

0 0
原创粉丝点击