代码之家  ›  专栏  ›  技术社区  ›  Oren Mazor

Django通用模板

  •  3
  • Oren Mazor  · 技术社区  · 15 年前

    所以,通用视图很酷,但我感兴趣的是一个通用模板。

    例如,我可以给它一个物体,它就可以为我把它串起来。

    或者,如果我给它一个列表,它将迭代这些对象,并将它们作为一个ul(或tr,或者它认为必要的其他任何东西)字符串。

    大多数情况下你不需要这个。我只是很快为一个朋友(一个酒吧股票应用程序,如果你必须知道),我不想写模板。

    2 回复  |  直到 15 年前
        1
  •  5
  •   SingleNegationElimination    15 年前

    如果有一个DJANGO的模型,你可以坚持 django.contrib.admin 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 模块:

    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()
    
        2
  •  1
  •   Rasiel    15 年前

    我看不出你会放弃编写模板,特别是如果你想格式化模板,甚至是稍微格式化一点。

    但是,您可以重新使用基本模板,例如,创建一个通用的object_list.html和object_detail.html

    它基本上包含循环对象列表并呈现它的信息,并显示对象细节。如果需要,您可以在整个应用程序中使用这些“通用”模板。