flask 模板渲染

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一模一样

posted @ 2020-03-18 22:35  Hank·Paul  阅读(339)  评论(0编辑  收藏  举报