您当前的位置: 首页 >  flask

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Flask处理响应

IT之一小佬 发布时间:2021-08-09 14:54:59 ,浏览量:0

处理响应 需求

如何在不同的场景里返回不同的响应信息?

1 返回模板

使用render_template方法渲染模板并返回

例如,新建一个模板index.html




    
    Title


我的模板html内容
{{ my_str }}
{{ my_int }}


后端视图

from flask import render_template

@app.route('/')
def index():
    mstr = 'Hello 黑马程序员'
    mint = 10
    return render_template('index.html', my_str=mstr, my_int=mint)

示例代码:

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def index():
    mstr = 'Hello world'
    mint = 10
    return render_template('index.html', my_str=mstr, my_int=mint)


if __name__ == '__main__':
    app.run()

运行效果:

 

示例代码2:【对上面代码稍做改变】

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def index():
    # mstr = 'Hello world'
    # mint = 10
    data = dict(
        my_str='Hello world',
        my_int=10
    )
    # return render_template('index.html', my_str=mstr, my_int=mint)
    return render_template('index.html', **data)


if __name__ == '__main__':
    app.run()

2 重定向
from flask import Flask, redirect

app = Flask(__name__)


@app.route('/demo2')
def demo2():
    return redirect('http://www.baidu.com')


if __name__ == '__main__':
    app.run()
3 返回JSON
from flask import Flask, jsonify

app = Flask(__name__)


@app.route('/demo3')
def demo3():
    json_dict = {
        "user_id": 10,
        "user_name": "laowang"
    }
    return jsonify(json_dict)


if __name__ == '__main__':
    app.run()

 运行结果:

4 自定义状态码和响应头

1) 元祖方式

可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。

from flask import Flask

app = Flask(__name__)


@app.route('/demo4')
def demo4():
    # return '状态码为 666', 666
    # return '状态码为 666', 666, [('Itcast', 'Python')]
    return '状态码为 666', 666, {'Itcast': 'Python'}


if __name__ == '__main__':
    app.run()

2) make_response方式

from flask import Flask, make_response

app = Flask(__name__)


@app.route('/demo5')
def demo5():
    resp = make_response('make response测试')
    resp.headers['Itcast'] = 'Python'
    resp.status = '406 not found'
    return resp


if __name__ == '__main__':
    app.run()

 

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0429s