Flask参数获取与响应

flask响应:

1、响应字符串。

        这个在前面已经说明过,但是需要指出的是,其实每次视图函数在响应时还可以附带状态码。比如状态码为200,表示请求已经被成功处理。状态码为400,表示请求无效。

 
  1. @app.route('/')

  2.  
  3. def index():

  4.  
  5. return 'bad request',400

2、响应Response对象

        利用make_reponse()函数接受字符串和错误码,返回一个Response对象,利用这种方法,不但可以成功处理请求,还可以进一步设置响应,如设置cookie等等:

 
  1. from flask import make_response

  2.  
  3. @app.route('/')

  4.  
  5. def index():

  6.  
  7. response=make_response('set cookies!')

  8.  
  9. response.set_cookie('hyman','123')

  10.  
  11. return response


3、返回重定向类型redirect

重定向类型指输入一个URL后,自动跳转到另一个URL所在的地址

 
  1. from flask import redirect

  2.  
  3. @app.route('/')

  4.  
  5. def index():

  6.  
  7. return redirect('http://www.baidu.com')

在浏览器中输入‘localhost:5000’之后,直接跳转到百度界面

4、返回处理错误码

利用abort返回处理错误

 
  1. from flask import abort

  2.  
  3. @app.route('/')

  4.  
  5. def index():

  6.  
  7. 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 '服务器搬家了'

猜你喜欢

转载自blog.csdn.net/zczc946/article/details/81075266