flask 模板渲染
from flask import Flask,render_template,Markup app = Flask(__name__) app.debug = True USERS = { 1:{'name':'张三','age':18,'gender':'男','text':"道路千万条"}, 2:{'name':'李四','age':28,'gender':'男','text':"安全第一条"}, 3:{'name':'王五','age':18,'gender':'女','text':"行车不规范"}, } def func(arg): return Markup(f"<h1>你好帅,{arg} is sb</h1>") @app.route("/") def index(): # data = { # "user":USERS, # "name":"bob" # } return render_template("index.html",user=USERS,name="bob",ht="<h1>你真帅</h1>",ht1=func) # return render_template("index.html",**data) if __name__ == '__main__': app.run()
html页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--渲染变量--> <div>{{name}}</div> <table> <!--变量循环渲染--> {% for k,v in user.items() %} <!--这里不同于django,items需要(),比起django可以进行传参--> <tr> <td>{{ k }}</td> <td>{{ v.name }}</td> <td>{{ v['name'] }}</td> <td>{{ v.get('name') }}</td> <td>{{ url_for("index") }}</td> </tr> {% endfor %} </table> <!--渲染转义--> {{ht|safe}} <!--支持传参的渲染,比django中多可以加括号,执行函数,传参数--> {{ht1("jason")}} </body> </html>
注意:
1.Markup等价django的mark_safe ,
2.extends,include和django一模一样