1.简单实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| from flask import Flask, render_template from flask_script import Manager app = Flask(__name__) mamanger = Manager(app) @app.route('/') def index(): return render_template('index.html') @app.route('/user/<name>') def user(name): return render_template('user.html', name=name) if __name__ == '__main__': mamanger.run()
|
最简单的模板,render_template,跟django里面用法差不多。
模板支持if,for等语句。
更能支持宏macro等强大用法。
还可以支持继承.
2.模板继承
这里重点说说继承,extends
base.html
1 2 3 4 5 6 7 8 9 10 11
| <html> <head> {% block head %} <title>{% block title %} {% endblock %} - My application </title> {% endblock %} </head> <body> {% block body %} {% endblock %} </body> </html>
|
user.html
1 2 3 4 5 6 7 8 9 10
| {% extends "base.html" %} {% block title %} index {% endblock %} {% block head %} {{ super() }} <style> </style> {% endblock %} {% block body %} <h1>hello, {{ name }}!</h1> {% endblock %}
|
block标签定义的元素可在衍生模板中修改。user.html里面重新定义了title,head,body。定义head的时候用到了base.html里面的内容,需要调用super()即可,跟面向对象语法里面的一模一样。
完整例子可以参看github https://github.com/gqdw/study-flk 里面的test-templates。