我知道如何在访问URL时使用render_模板从Python发送纯文本:
@app.route(/success.html")
...
return render_template("index.html", text="This text goes inside the HTML")
模板应该是这样的:
<div class="output">
{{text|safe}}
</div>
但是,当我需要插入几行HTML时,我不知道该怎么做。例如,表单:
<form action="">
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car
</form>
如果我在Python脚本中将其作为字符串加载并发送到模板中,它可能会工作,但这听起来不太正确。
有人知道如何正确地将HTML插入Flask网页吗?一个虚拟的例子也很好。
Flask使用Jinja2模板引擎(两者都有相同的开发人员),当使用
render_template("filename", "content")
时,将在templates文件夹中查找具有该文件名的模板。 如果应用程序是一个模块,则此文件夹应位于该模块旁边,如下所示:如果是包裹,它需要放在你的包裹里,比如:
您可以使用Jinja2^{} 指令。
因此,您可以将表单放入自己的模板中,名为
your_form.html
,其中包含以下内容:然后在你的
index.html
中包含它Jinja2中的动态变量
引用docs
所以很简单:
如果您使用的是旧版本,这里有一个简单的方法
为了说明它的灵活性,这里有一些例子给你灵感
您还可以设置这样的Jinja变量(IMO更详细)
安全提示:确保您确切知道作为变量传递的内容
html_file
,因为它是动态的,如果该值来自客户端,则可能会公开您自己的文件模板继承对于html重用也很有用。您可以添加基本模板并将自定义html代码/块添加到子html代码。
来源:http://flask.pocoo.org/docs/0.12/patterns/templateinheritance/
相关问题 更多 >
编程相关推荐