flask响应:
1、响应字符串。
这个在前面已经说明过,但是需要指出的是,其实每次视图函数在响应时还可以附带状态码。比如状态码为200,表示请求已经被成功处理。状态码为400,表示请求无效。
-
@app.route('/')
-
def index():
-
return 'bad request',400
2、响应Response对象
利用make_reponse()函数接受字符串和错误码,返回一个Response对象,利用这种方法,不但可以成功处理请求,还可以进一步设置响应,如设置cookie等等:
-
from flask import make_response
-
@app.route('/')
-
def index():
-
response=make_response('set cookies!')
-
response.set_cookie('hyman','123')
-
return response
3、返回重定向类型redirect
重定向类型指输入一个URL后,自动跳转到另一个URL所在的地址
-
from flask import redirect
-
@app.route('/')
-
def index():
-
return redirect('http://www.baidu.com')
在浏览器中输入‘localhost:5000’之后,直接跳转到百度界面
4、返回处理错误码
利用abort返回处理错误
-
from flask import abort
-
@app.route('/')
-
def index():
-
abort(404)
参数获取
1、request.form.get("key", type=str, default=None) 获取表单数据
2、request.args.get("key") 获取get请求参数
3、request.values.get("key") 获取所有参数。推荐使用request.values.get()
4、request.get_json()获取解析json数据格式,然后直接引用a['b']
请求钩子
- before_first_request:在处理第一个请求前运行。
- before_request:在每次请求前运行。
- after_request:如果没有未处理的异常抛出,在每次请求后运行。
- teardown_request:在每次请求后运行,即使有未处理的异常抛出。
例如:
@before_first_request
def before_first_request():
return
异常捕获
abort 方法
抛出一个给定状态代码的 HTTPException,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。
参数: code – HTTP的错误状态码
abort(404)
abort(500)
只能抛出HTTP协议的状态码
errorhandler 装饰器
注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装饰器所装饰的方法
参数:code_or_exception – HTTP的错误状态码或指定异常
例如统一处理状态码为500的错误给用户友好的提示:
@app.errorhandler(500)
def internal_server_error(e):
return '服务器搬家了'