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