如何快速掌握[python][flask] Jinja 模板?

摘要:Flask 和 Django 附带了强大的 Jinja 模板语言。 对于之前没有接触过模板语言的人来说,这类语言基本上就是包含一些变量,当准备渲染呈现 HTML 时,它们会被实际的值替换。 这些变量放在标记或分隔符之前。例如:Jinja 模
目录1、快速体验2、Flask 最小 DEMO3、模板继承4、Super Blocks5、Macros6、自定义过滤器7、结论参考链接 Flask 和 Django 附带了强大的 Jinja 模板语言。 对于之前没有接触过模板语言的人来说,这类语言基本上就是包含一些变量,当准备渲染呈现 HTML 时,它们会被实际的值替换。 这些变量放在标记或分隔符之前。例如:Jinja 模板使用 {% ... %} 表示循环,{{ ... }} 表示一个表达式运算结果返回。 Jinja 模板其实是 html 文件。一般情况下放在 Flask 工程的 /templates 目录下 1、快速体验 跑下面的各种 demo 之前,确保你已经安装了 Jinja (pip install jinja2) >>> from jinja2 import Template >>> t = Template("Hello {{ something }}!") >>> t.render(something="World") u'Hello World!' >>> t = Template("My favorite numbers: {% for n in range(1,10) %}{{n}} " "{% endfor %}") >>> t.render() u'My favorite numbers: 1 2 3 4 5 6 7 8 9 ' 这个 demo 展示了模板中的变量(表达式)是如何最终被替换和渲染的。 2、Flask 最小 DEMO 整个的参考代码可以在这里获得:HERE 不过博主建议按照下面步骤一步步来: 1)安装 flask ➜ pip install flask 2)创建工程目录结构: ➜ mkdir flask_example ➜ cd flask_example ➜ mkdir templates ➜ cd .. ➜ touch run.py ➜ touch requirements.txt 3)编写 run.py from flask import Flask, render_template app = Flask(__name__) @app.route("/") def template_test(): return render_template('template.html', my_string="Wheeeee!", my_list=[0,1,2,3,4,5]) if __name__ == '__main__': app.run(debug=True) 这里,我们创建了一个 / 路由,当我们访问服务器根路由时,会通过 render_template 将 template.html 渲染,其中 my_string 和 my_list 就是准备传给模板的实际的值。
阅读全文