gpt4 book ai didi

python - 编写出色的 Twisted web 资源

转载 作者:可可西里 更新时间:2023-11-01 16:31:22 26 4
gpt4 key购买 nike

我写了我的第一个 Twisted 10.1.0 web 资源,我正在寻求反馈,因为我觉得这不完全遵循最佳实践,并且可能包含新手错误。

资源响应 /?url=http://www.foo.baz/abc123 并依赖返回 dict 的服务。如果出现任何问题(例如,无效或不存在的 url,则返回 400)。

有什么意见吗?任何需要修复、改进的地方

class ProcessedUrl(resource.Resource):
isLeaf = True

def __init__(self, service):
resource.Resource.__init__(self)
self.service = service

def _cancel(self, err, deferred):
deferred.cancel()

def _write(self, value, request):
request.setResponseCode(http.OK)
request.write(json.dumps(value))
request.finish()

def _cleanUrl(self, url):
return cleanUrl(url)

def _checkUrl(self, url):
if url is not None:
if isValidUrl(url):
return True
return False

def render_GET(self, request):
request.setResponseCode(http.BAD_REQUEST)
url = request.args.get('url', [None])[0]

if self._checkUrl(url):
url = self._cleanUrl(url)
d = self.service.processUrl(url)
request.notifyFinish().addErrback(self._cancel, d)
d.addCallback(_write)
d.addErrback(log.err)
else:
return 'Invalid or no URL.'
return server.NOT_DONE_YET

def getChild(self, name, request):
return self

最佳答案

认为如果您设置isLeaf=True

,您就不需要显式覆盖 getChild()

关于python - 编写出色的 Twisted web 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287310/

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