flask框架学习(5)-处理响应

1.渲染模板
2.重定向
3.自定义状态码
4.返回JSON
5.综合使用

1.渲染模板
# 使用render_template方法渲染模板
eg:
    from flask import render_template
    @app.route('/,methods=["get"])
    def index():
        return render_template('index.html')
        
2.重定向
# 使用redirect方法进行重定向
eg:
    from flask import redirect
    @app.route('/')
    def demo2():
        return redirect('https://www.baidu.com/') # 会重定向到百度页面
        # return redirect('/index') # 会重定向到本项目中url为 /index 的页面
3.自定义状态码
1.元祖方式
    可以返回一个元组,元组必须是 (response, status, headers) 的形式,且至少包含一个元素。 
    response 响应内容 ,status 状态码, headers 设置响应头,可以是一个列表或字典。
    
eg:
    from flask import Flask
    app = Flask(__name__)
    
    @index_bp.route('/', methods=["get"])
    def index():
         return '响应内容', 666, {'hahaha': 'value11'}
         # return '响应内容', 666, [('hahaha': 'value11')]

2.make_response方式
eg:
    from flask import Flask, make_response
    app = Flask(__name__)
    
    @app.route('/', methods=["get"])
    def demo():
        resp = make_response('响应内容')
        resp.headers["hahaha"] = "value11"
        resp.status = 666
        return resp
        
    if __name__ == '__main__':
        app.run(host="0.0.0.0", port=5000, debug=True)

4.返回JSON
# 使用jsonify返回json数据

from flask import jsonify

@app.route('/demo3')
def demo3():
    json_dict = {
        "user_id": 10,
        "user_name": "xiaobai"
    }
    return jsonify(json_dict)            
5.综合使用
# *_*coding:utf-8

from flask import Flask, make_response, jsonify, abort, redirect

app = Flask(__name__)


@app.route('/')
def index():
    error_message = {"result": "warn", "info": "无权限获取数据"}

    # 使用jsonify 返回json格式的到数据
    response = make_response(jsonify(error_message), 403)

    # 不设置状态码
    # response = make_response(jsonify(error_message))
    response.headers['Content-Type'] = 'application/json'

    # 使用abort可以抛出异常,并且程序不会继续往下执行
    abort(response)


@app.route("/cookie", methods=["get"])
def set_cookie():

    # 可以用来重定向
    # resp = make_response(redirect('https://www.baidu.com'))

    resp = make_response("hahaha")

    # 设置cookie值,max_age代表过期时间,单位:秒
    resp.set_cookie('username', "test", max_age=60 * 60 * 24)
    resp.set_cookie('token', "123456", max_age=60 * 60 * 24)
    return resp


# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:flask框架学习(5)-处理响应

本文作者:伟生

发布时间:2022-10-01, 21:36:00

最后更新:2024-02-17, 21:39:42

原始链接:http://yoursite.com/2022/10/01/flask_12_deal_response/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏