关于响应(Response):

视图函数中可以返回以下类型的值:

  • Response对象。

  • 字符串。其实Flask是根据返回的字符串类型,重新创建一个werkzeug.wrappers.Response对象,Response将该字符串作为主体,状态码为200,MIME类型为text/html,然后返回该Response对象。

  • 元组。元组中格式是(response,status,headers)response为一个字符串,status值是状态码,headers是一些响应头。

  • 如果不是以上三种类型。那么Flask会通过Response.force_type(rv,request.environ)转换为一个请求对象。

以下将用例子来进行说明:

第一个例子:直接使用Response创建:

 from werkzeug.wrappers import Response

 @app.route('/about/')
 def about():
     resp = Response(response='about page',status=200,content_type='text/html;charset=utf-8')
     return resp

第二个例子:可以使用make_response函数来创建Response对象,这个方法可以设置额外的数据,比如设置cookie,header信息等:

 from flask import make_response

 @app.route('/about/')
 def about():
     return make_response('about page')

第三个例子:通过返回元组的形式:

 @app.errorhandler(404)
 def not_found():
     return 'not found',404