您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django框架下在视图中使用模版的方法

5b51 2022/1/14 8:21:05 python 字数 4284 阅读 482 来源 www.jb51.cc/python

打开current_datetime视图。以下是其内容: fromdjango.httpimportHttpResponse importdatetime

概述

 打开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)

然而,基于以下几个原因,该方法还算不上简洁:

总结

以上是编程之家为你收集整理的Django框架下在视图中使用模版的方法全部内容,希望文章能够帮你解决Django框架下在视图中使用模版的方法所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶