gpt4 book ai didi

django - 如何操作 django-piston 中的响应对象?

转载 作者:行者123 更新时间:2023-12-02 02:31:25 26 4
gpt4 key购买 nike

我有一些现有的 python 代码使用 django-piston,它返回一个字典作为它的响应。例如:

from piston.handler import BaseHandler

class FooHandler(BaseHandler):
allowed_methods = ('GET',)

@classmethod
def create(self, request):
return { 'foo': 'bar' }

这段代码工作正常,并使用适当的 HTTP header 集序列化为 JSON(我假设这是通过一些涉及发射器的活塞魔术工作的;为了加分,请随时澄清这种行为是如何工作的,因为我我还在了解 django-piston)。

我需要能够以任意方式修改响应,例如设置标题、状态代码等,而不使用为特定目的设计的一些预烘焙解决方案。是否有一种方便的方法可以在这段代码的上下文中访问响应对象并对其进行操作,或者尚未创建响应对象?为了访问响应对象,我是否必须手动构造它(la vanilla django)、序列化字典并手动设置适当的 header ,从而失去 django-piston 的一些有用魔力?

最佳答案

每个 django-piston 方法都会返回一个 HTTPResponse。

当您返回该字典时,django-piston 只是将其序列化并将其粘贴到它精心制作的各种 HTTPResponse 中。

考虑到 wiki 中所有 django-piston 示例中的那些“return rc.CREATED”行只是带有 HTTP 代码和响应主体的超简单响应,所以您没有意识到这一点,这让您有点惊讶。

看这里:https://bitbucket.org/jespern/django-piston/src/c4b2d21db51a/piston/utils.py

在 rc_factory 类中,它创建各种简单的 HTTPResponse 对象以用于 Piston。

至少您可以观察他们是如何做的,然后自己制作。

但是对于“我可以制作自定义 HTTPResponse 吗”这个问题的本质,答案是肯定的,您可以。当然,这就是网络服务器所做的

关于django - 如何操作 django-piston 中的响应对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com