【发布时间】:2015-03-15 08:35:53
【问题描述】:
我在应用引擎的 ndb 数据存储区中将文本保存在 markdown 中。在检索时,我正在使用 markdown2 库将 Markdown 转换为 html 并将其作为参数传递给模板进行渲染。代码如下:
article_content = model.Article.query(model.Article.tittle == article_tittle).fetch()
if article_content:
for article in article_content:
content = markdown.markdown(article.content)
tittle = article.tittle
date = article.date
params = {
'page' : 'article',
'tittle' : tittle,
'content' : content
}
self.render_response('article.html',**params)
但是当我渲染模板时,html标签被转换为html实体:
<article class="article">&lt;p&gt;A minimalist writing zone, where you can block out all distractions and get to what's important. The writing!bvbvbvjbvbknvbvbnvbvbn jvnbnvbgnb n vgnvbn n n bn inovblv &amp;nbsp;o &amp;nbsp;bgv vomhg bmvm vmbvl lm &amp;nbsp; mvjpbg&lt;/p&gt;&lt;p&gt;Use &lt;strong&gt;bold&lt;/strong&gt;, &lt;em&gt;italics&lt;/em&gt;, &lt;strong&gt;&lt;em&gt;both&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a href="http://zenpen.io"&gt; urls &lt;/a&gt;_ just_ by highlighting the text and selecting them from the tiny options box that appears above it.&amp;nbsp;&lt;/p&gt;&lt;p&gt;fdbgbfbvbvbbghh&lt;/p&gt;&lt;blockquote&gt; &lt;p&gt;Quotes are easy to add too! &amp;nbsp;fjbgbknvkbvnm i m vm vi mfbm b bo gb gbgb gjkcdfkvc bnbv n oibio nbiffhi nfjkgfkjv &amp;nbsp;gdrf&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;gdfbcdjifjgfgethfb&lt;/p&gt;&lt;p&gt;gfbfgbf&lt;/p&gt;&lt;p&gt;hhgbvgfgh&lt;/p&gt;</article>
如果我将变量作为 json 转储或简单地通过 self.response.write() 传递,则它是正确传递的。
有没有办法将变量中的html元素传递给模板。我正在使用 jinja2 进行模板化。 另外,如果可以,请描述原因以及应用引擎如何将变量传递给模板.thanx
【问题讨论】:
-
你能在 jinja2 中将变量标记为安全吗?
{{ content|safe }} -
哦,我完全逃脱了,..谢谢!!
标签: javascript python html google-app-engine jinja2