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" 转载请保留原文链接及作者。