Flask的Response常用操作

Flask 的Response常用操作

服务器返回给客户端的数据
由程序员创建,返回Response对象
  1. 直接返回字符串, 可以返回文本内容,状态码
  2. render_template 渲染模板,将模板转换成字符串
  3. 通过make_response(data,code)
    - data 返回的数据内容
    - code 状态码
  4. 返回Response对象
举例
'''
index.html内容:
<body>
    <h2>首页</h2>
    <hr>
    <p>{{ name }}</p>
    <p>{{ age }}</p>
</body>
'''
@blue.route('/getresponse/')
def get_response():
	#1.直接返回字符串
    return "response ok"
	#结果:response ok
    
    #2.render_template 渲染模板,将模板转换成字符串
    #return render_template('index.html')#报错,一定要保证templates与当前文件在同一目录下
    return render_template('index.html', name="zhangsan")#将static与template文件夹复制到App下
	#结果:得到一个html字符串化后的结果
    '''
    ......
    <body>
        <h2>首页</h2>
        <hr>

        <p>zhangsan</p>
        <p></p>
    </body>
    </html>
    '''
    #3.传参方式 + 2中的操作
    params = {
            "name":"zhangsan",
            "age":33
        }
	return render_template('index.html', **params)
	#得到的也是与2中类似的结果
    
    #4.在3的基础上,使用jsonify返回json序列化的结果
    return jsonify(params)
    #结果{
          "age": 33,
          "name": "zhangsan"
        }
	
    #5. 通过make_response(data,code)
	res = render_template('index.html', **params)#渲染模板,将模板转换成字符串
	print(res,type(res))#res是一个HTML字符串,类型<class 'str'>
    
    #6.response = Response(res)
	print(response,type(response))#Response对象
	# < Response246bytes[200OK] >
	# <	class 'flask.wrappers.Response'>



重定向
  redirect()#视图中,调用其他函数
  url_for(‘函数名’,参数=value)#HTML中,调用其他函数

举例
	@blue.route('/makeredirect/')
	def make_redirect():
	# return redirect('http://www.qq.com')#网址跳转到腾讯首页
    #return redirect('/getresponse/')#跳转到上面内容的页面
	
    #url_for('蓝图名称.视图函数名称')
	return redirect(url_for('user.get_fruit',fruit="apple"))#结果apple
	# 相当于=>Django中redirect(reverse())


终止执行, 抛出异常
	主动终止 abort(code)
    
举例
	@blue.route('/abort/')
	def make_abort():
	abort(403)
	return "error"

捕获异常
	@app.errorhandler(404)
	def hello(e):
		return ‘LOL’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值