处理内容类型/接受头的混入
项目描述
一个执行内容类型协商和请求/响应(反)序列化的混入。
此混入向tornado.web.RequestHandler实例添加了两个方法
get_request_body() -> dict:根据HTTP Content-Type头解析请求体,并返回解析后的体。
send_response(object):将响应序列化成由Accept头请求的内容类型。
在支持特定内容类型之前,您应该在您的tornado.web.Application实例中安装内容设置。如果您不安装内容设置,则混入将为您创建一个实例;但是,创建的实例将是空的。您应该已经有了创建Application实例的函数。如果没有,现在是添加它的好时机。
from sprockets.mixins.mediatype import content
from tornado import web
def make_application():
application = web.Application([
# insert your handlers here
])
content.install(application, 'application/json', 'utf-8')
return application
通过调用带有tornado.web.Application实例、内容类型、编码和解码函数作为参数的add_binary_content_type、add_text_content_type或add_transcoder函数,启用内容类型的支持
import json
from sprockets.mixins.mediatype import content
from tornado import web
def make_application():
application = web.Application([
# insert your handlers here
])
content.install(application, 'application/json', 'utf-8')
content.add_text_content_type(application,
'application/json', 'utf-8',
json.dumps, json.loads)
return application
“添加内容类型”函数会将一个属性添加到混合模式使用的 Application 实例中,该属性用于操作请求和响应体。与“添加_transcoder”函数类似,但它接收一个实现转码方法的对象,而不是简单函数。transcoders 模块包含了一些内容类型的现成转码器。
from sprockets.mixins.mediatype import content, transcoders
from tornado import web
def make_application():
application = web.Application([
# insert your handlers here
])
content.install(application, 'application/json', 'utf-8')
content.add_transcoder(application, transcoders.JSONTranscoder())
return application
在任意情况下,ContentMixin 都会使用注册的内容类型信息为您的请求处理器提供透明的内容类型协商。
from sprockets.mixins.mediatype import content
from tornado import web
class SomeHandler(content.ContentMixin, web.RequestHandler):
def get(self):
self.send_response({'data': 'value'})
def post(self):
body = self.get_request_body()
# do whatever
self.send_response({'action': 'performed'})
根据存储在 Application 实例中的设置和 HTTP 头,将正确处理请求和响应数据,或抛出适当的 HTTP 异常。
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪一个,请了解有关 安装包 的更多信息。
源分布
sprockets.mixins.mediatype-3.0.4.tar.gz (19.6 kB 查看哈希值)
构建分布
关闭
sprockets.mixins.mediatype-3.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c081fab291d851e934197bfbaf0605e7beabe46e761ce599f39b5a245152107 |
|
MD5 | fe60119de33da2b9e0f8d52c1a402b1f |
|
BLAKE2b-256 | c75e870ff37044aba890b58e668884470392499661f27ba8740c19dc2aedea50 |
关闭
sprockets.mixins.mediatype-3.0.4-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c58a95939faef423aaf0391ec661c0a03b95dfe8d5a523e3b6f29a3b550fc94e |
|
MD5 | 7ba0971bcb65b20c2abaef902b78dd03 |
|
BLAKE2b-256 | 79b7447693f93eed809edaa77bfb282d5faa37cd221b4b5adcb274884094a17c |