gpt4 book ai didi

python - 处理 Twisted Web 服务器中的所有资源

转载 作者:行者123 更新时间:2023-11-28 21:26:00 25 4
gpt4 key购买 nike

我正在开发一个响应 GET 和 PUT 请求的 REST API。

由于种种原因,本API将采用Python和Twisted编写。也就是说,从我找到的所有示例来看,扭曲的网络似乎都是基于资源的。

根据我的理解,这意味着我必须设置单独的资源并为每个资源定义 GET 和 POST 处理程序。

我想做的是设置 GET 和 POST 处理程序,无论请求什么资源都会调用它们。

在伪代码中:

import *the appropriate modules*

class Callback(resource.Resource):
def render_GET(self,request):
print "GET!"
def render_POST(self,request):
print "POST!"

def main():
*magic*
reactor.listenTCP(settings.port,factory)
reactor.run()
print "Started callback server on port %d" % settings.port

if __name__ == '__main__':
main()

不幸的是,我在网上搜索示例时发现没有办法做到这一点。

非常感谢任何有关如何设置“包罗万象”资源或使用不同 react 器类型来处理此问题的意见。

最佳答案

这个问题(可能还有其他问题 :) 在 Twisted Web in 60 Seconds 中得到了回答。文档系列。

特别是,您问的是 Twisted Web 中所谓的“动态 URL 调度”。听起来您已经找到了可让您处理静态 URL 分派(dispatch)的 Resource.putChild API。使用动态 URL 分派(dispatch),您不必预先为要处理的所有 URL 设置处理程序。相反,您重写 getChild 以实现您自己的按需创建资源的逻辑。

参见 dynamic dispatch文档以获取更多详细信息,但要点是:

class Calendar(Resource):
def getChild(self, name, request):
return YearPage(int(name))

这是一个资源,它通过创建一个知道该整数是什么的 YearPage 资源来处理任何整数子项。您应该能够执行类似的操作来创建您的 Callback 资源。

关于python - 处理 Twisted Web 服务器中的所有资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621721/

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