【发布时间】:2018-07-05 03:20:56
【问题描述】:
我很难理解 render() 的工作原理。我已阅读有关该功能的功能的帖子,但仍有未解决的问题。
在 Django Docs 中阅读它,并查看源代码,它不是属于任何类的方法。相反,它和其他许多函数一样是一个函数,并且需要多个参数(request、template_name 等)。
虽然,在Django Book 中,它被声明为可以在模板对象上调用的方法。也就是说,您可以实例化一个对象,并立即使用某些上下文调用该对象的渲染方法。我之前使用它时没有指定任何模板名称,只是在具有某些上下文的模板对象上调用它,如前所述。
当它可以像模板类的方法一样在模板对象上调用时,为什么文档将它描述为一个独立的函数,而不属于一个类?为什么我在任何地方都找不到模板类?我错过了什么?
【问题讨论】:
-
我不确定您对什么感到困惑。有两种不同的东西叫做渲染;一个独立的函数,以及由该函数调用的 Template 类上的一个方法。
-
这是有道理的。真的没想到。我在哪里可以找到模板类?我在 StackOverflow 上找不到一篇关于它的帖子,而且很难在 Docs 中找到它!
-
根据我的经验,您很少直接与
Template对象交互,但是:docs.djangoproject.com/en/2.0/topics/templates -
我敢肯定!为什么可以这样实例化:a = Template('template-text')?有实际的模板类吗?使用方法渲染?在您链接的网站上,我看不到有关其中任何一个问题的信息。如果我错了,请纠正我!
-
从字符串加载...嗯,你不会。但是,如果出于某种原因需要,您可以直接调用模板引擎来获取
Template实例,如下所示,使用from_string:docs.djangoproject.com/en/2.0/topics/templates/…
标签: python django templates render