输出响应

与请求相对应的响应方法都在sanic.response包中定义,用于处理函数的返回值。Sanic将不同的响应内容都定义成了函数,根据调用函数的不同,将会返回HTTPResponse类实例或者StreamingHTTPResponse类实例,分别代表普通HTTP响应和流式HTTP响应。

基本上所有的响应函数都可以接受以下两个参数:

  • status,HTTP响应码,如果没有特殊说明则默认值为200。
  • headers,额外的响应头内容,默认值为None,可以使用字典类型值来设置。

常用的响应函数主要有以下这些:

响应函数响应内容可用参数(按参数表顺序)
.file()输出一个文件
  • location,响应文件的路径。
  • status,HTTP响应码。
  • mime_type,内容类型。
  • headers,额外响应头。
  • filename,输出文件名。
  • _range,输出文件内容的范围。
.file_stream()流式输出一个文件
  • location,响应文件的路径。
  • status,HTTP响应码。
  • chunk_size,分块大小,默认为4096。
  • mime_type,内容类型。
  • headers,额外响应头。
  • filename,输出文件名。
  • trunked,是否分块输出,默认为True
  • _range,输出文件内容的范围。
    .html()以HTML格式输出
    • body,要输出的内容。
    • status,HTTP响应码。
    • headers,额外响应头。
    .json()以JSON格式输出
    • body,要输出的内容,字典或对象格式。
    • status,HTTP响应码。
    • content_type,内容类型,默认为application/json
    • headers,额外响应头。
    • dumps,JSON转换器设置。
    • **kwargs,提供给JSON转换器的额外参数。
    .raw()不进行任何转换的输出
    • body,要输出的内容。
    • status,HTTP响应码。
    • headers,额外响应头。
    • content_type,内容类型,默认为application/octet-stream
    .redirect()输出一个重定向
    • to,重定向到的位置。
    • headers,额外响应头。
    • status,HTTP响应码,默认为302。
    • content_type,内容类型,默认为text/html
    • charset,编码格式,默认为utf-8
    .stream()使用流式输出指定内容
    • stream_fn,一个接受Response实例并且向其中流式写入的函数。
    • status,HTTP响应码。
    • headers,额外响应头。
    • content_type,内容类型,默认为text/plain
    • charset,编码格式,默认为utf-8
    • chunked,是否分块输出,默认为True
    .text()以纯文本格式输出内容
    • body,要输出的内容。
    • status,HTTP响应码。
    • headers,额外响应头。
    • content_type,内容类型,默认为text/plain
    • charset,编码格式,默认为utf-8