所以,通用视图非常酷,但我感兴趣的是通用模板。
例如,我可以给它一个对象,它会为我串起来。
或者,如果我给它一个列表,它只会遍历对象并将它们作为 ul(或 tr,或它认为必要的其他任何东西)串起来。
对于大多数用途,您不需要这个。我只是为一个朋友快速拼凑了一些东西(一个酒吧股票应用程序,如果你必须知道的话),我不想写模板。
所以,通用视图非常酷,但我感兴趣的是通用模板。
例如,我可以给它一个对象,它会为我串起来。
或者,如果我给它一个列表,它只会遍历对象并将它们作为 ul(或 tr,或它认为必要的其他任何东西)串起来。
对于大多数用途,您不需要这个。我只是为一个朋友快速拼凑了一些东西(一个酒吧股票应用程序,如果你必须知道的话),我不想写模板。
如果有 django 模型,你可以坚持使用django.contrib.admin
or django.contrib.databrowse
。如果没有,那么您可以通过完全跳过 django 模板来管理。例子:
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)
但是当然你想避免写那么多,所以我们可以使用纯文本和pprint
模块来代替 html:
from django.http import HttpResponse
import datetime
from pprint import pformat
def current_datetime(request):
now = datetime.datetime.now()
return HttpResponse(pformat(now), mimetype="text/plain")
编辑:嗯......这似乎是一个视图装饰器应该处理的事情:
from django.http import HttpResponse
import datetime
import pprint
def prettyprint(fun):
return lambda request:HttpResponse(
pprint.pformat(fun(request)), mimetype="text/plain")
@prettyprint
def current_datetime(request):
return datetime.datetime.now()
我认为你不会放弃编写模板,特别是如果你想格式化它,即使是轻微的。
但是,您可以重复使用基本模板,例如,创建通用 object_list.html 和 object_detail.html
这将基本上包含遍历对象列表并呈现它的信息,并显示对象详细信息。如果需要,您可以在整个应用程序中使用这些“通用”模板。