Google App Engine 渲染和 Django 表单

Posted

技术标签:

【中文标题】Google App Engine 渲染和 Django 表单【英文标题】:Google App Engine render and Django forms 【发布时间】:2012-10-15 06:08:47 【问题描述】:

我正在尝试在我的 Google App Engine 项目中使用 Django 表单,使用模板系统。但是我不知道如何正确呈现表单。从 python 代码调用 form.as_p () 时,我得到了预期的 html

<p><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" /></p>

然而,当我从模板中调用 form.as_p 时,我却得到了

&lt;p&gt;&lt;label for=&quot;id_name&quot;&gt;Name:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;name&quot; id=&quot;id_name&quot; /&gt;&lt;/p&gt;

这是我的渲染方法

def render(self, name, **data):
    """Render a template"""
    if not data:
        data = 
    self.response.out.write(template.render(
        os.path.join(
            os.path.dirname(__file__), 'templates', name + '.html'),
        data))

正在调用渲染方法:

form = PostForm()
self.render('toplevel', parent=user, items=user.establishments(), form=form)

最后是模板:

% block content %

     form.as_p 

% endblock content %

【问题讨论】:

【参考方案1】:

将模板中的表单更改为:

% block content %

     form.as_p|safe 

% endblock content %

这应该可以防止 as_p 中的 HTML 被转义。见:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#safe

【讨论】:

以上是关于Google App Engine 渲染和 Django 表单的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud 中的 Google Compute Engine、App Engine 和 Container Engine 有啥区别?

连接 Google App Engine 和 Google Compute Engine

Google App Engine Flexible 和 Google Container Engine 之间的区别?

sql GQL - Alternativa和没有Google App Engine一样

Google App Engine 和 404 错误

如何在 Google Cloud Functions 和 Google App Engine 之间进行选择?