Django框架下在视图中使用模版的方法
发布时间:2020-12-16 22:07:59 所属栏目:Python 来源:网络整理
导读:打开current_datetime 视图。 以下是其内容: from django.http import HttpResponseimport datetimedef current_datetime(request): now = datetime.datetime.now() html = "htmlbodyIt is now %s./body/html" % now return HttpResponse(html) 让我们用 Dj
打开current_datetime 视图。 以下是其内容: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 让我们用 Django 模板系统来修改该视图。 第一步,你可能已经想到了要做下面这样的修改: from django.template import Template,Context from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() t = Template("<html><body>It is now {{ current_date }}.</body></html>") html = t.render(Context({'current_date': now})) return HttpResponse(html) 没错,它确实使用了模板系统,但是并没有解决我们在本章开头所指出的问题。 也就是说,模板仍然嵌入在Python代码里,并未真正的实现数据与表现的分离。 让我们将模板置于一个 单独的文件 中,并且让视图加载该文件来解决此问题。 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容。 假设文件保存在 /home/djangouser/templates/mytemplate.html 中的话,代码就会像下面这样: from django.template import Template,Context from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() # Simple way of using templates from the filesystem. # This is BAD because it doesn't account for missing files! fp = open('/home/djangouser/templates/mytemplate.html') t = Template(fp.read()) fp.close() html = t.render(Context({'current_date': now})) return HttpResponse(html) 然而,基于以下几个原因,该方法还算不上简洁:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |