flask-响应-5种方式
需求:处理不同场景返回不同的响应信息
1、响应返回模版
使用render_template()
1 from flask import Flask,render_template 2 app = Flask(__name__) 3 @app.route('/') 4 def hello(): 5 #直接返回响应字符您好,返回给浏览器 6 #return '您好' 7 #返回模版语言,然后再解析为html语言 8 return render_template('index.html') 9 if __name__ == '__main__': 10 app.run()
2、重定向
只需要更改上边代码第八行位置为如下代码
1 #3、重定向到百度,redirect表示重定向,参数是location 2 #应用场景:当项目文件或者url地址出现变化的时候 3 return redirect('http://baidu.com')
3、json
使用jsonify方法,不仅会把数据转成json字符串,还会把响应的类型改为application/json;参数为python的数据类型,例如字典
1 #4、json json定义-本质是基于键值对形式的字符串 2 # 4.1 使用flask内置的函数jsonify 3 s = {'id':'123456'} 4 return jsonify(s) 5 # 4.2 使用json模块提供的函数 dumps() 把字典转为字符串 6 json_data = json.dumps(s) 7 return json_data
4、自定义状态码和响应头 两种方式
1 #5、返回元祖 形式(response,status,headers)下边两行都可以 2 return 'hello', 200 ,{'id':'who are you'} 3 return ('hello', 200, {'id': 'who are you'}) 4 #6、make_response 5 response = make_reponse('make_res测试') 6 response.headers['id'] = 'who' 7 response.status = '404 noy found' 8 return response