与请求相对应的响应方法都在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。 |