码迷,mamicode.com
首页 > 其他好文 > 详细

Flask之模板系统

时间:2020-07-04 01:21:01      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:imp   基础   set   play   lap   str   har   opened   方法   

一、模板的基础方法

Flask使用的是Jinja2模板,其语法与Django框架中模板系统一样,与模板相关联的方法有:

  • render_template
  • Markup
  • jsonify
  • make_response
  • macro 

二、基础方法的使用

1、render_template

该方法是对模板的渲染,相当于django中的render方法:

from flask import Flask, render_template

app = Flask(__name__)


@app.route(/)
def index():
    data = [
        {username: 张三, age: 12},
        {username: 李四, age: 22},
    ]
    return render_template(index.html, data=data)


if __name__ == __main__:
    app.run()
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{data}}
{% for obj in data %}
  {{ obj }}
{% endfor %}
</body>
</html>
index.html

2、Markup

Markup其实相当于django中的make_safe,在Jinja2的模板中可以是safe对html进行转义,同时flask中也可以使用Markup:

from flask import Flask, render_template, Markup

app = Flask(__name__)


def html():
    html_str = Markup("<a href=‘#‘>点击我</a>")
    return html_str


@app.route(/)
def index():
    return render_template(index.html, func=html)


if __name__ == __main__:
    app.run()
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{func()}}
</body>
</html>
index.html

 3、jsonify

 顾名思义返回的数据时json数据,该方法可以用作返回接口数据。

from flask import Flask, jsonify

app = Flask(__name__)


@app.route(/)
def index():
    return ({a: 1, b: 2})  # 或者 return jsonify(a=‘1‘,b=‘2‘)


if __name__ == __main__:
    app.run()

4、make_response

之前的render_template是可以直接返回数据给模板的,但是假如你想在返回页面之前对response在进行一下加工,比如加入cookie、headers之类的参数,该方法就可以使用。

from flask import Flask, render_template, make_response

app = Flask(__name__)


@app.route(/)
def index():
    response = make_response(render_template(index.html, num=56))
    response.headers[X-Parachutes] = parachutes are cool
    return response


if __name__ == __main__:
    app.run()

5、macro

 使用在html模板中,可以在该参数范围内定义一个代码块,并且可进行调用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% macro func(name) %} <!--定义func函数,有name形参-->
    {{ name }}
{% endmacro %}

{{ func(‘小明‘) }}  <!--调用func函数,并且传递参数-->
</body>
</html>

 

 

 

 

 

Flask之模板系统

标签:imp   基础   set   play   lap   str   har   opened   方法   

原文地址:https://www.cnblogs.com/shenjianping/p/13227933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!