python– 对static.File进行子类化

python– 对static.File进行子类化,第1张

概述我是Twisted的新手,我遇到了一些必要的子类,因为static.File是扭曲的.我正在尝试在子类中设置请求标头.class ResponseFile(static.File): def render_GET(self, request): request.setHeader('Content-Disposition', ['a

我是Twisted的新手,我遇到了一些必要的子类,因为static.file是扭曲的.我正在尝试在子类中设置请求标头.

class Responsefile(static.file):    def render_GET(self,request):        request.setheader('Content-disposition',['attachment ; filename="tick_db_export.csv"'])        static.file.render_GET(self,request)if __name__ == "__main__":    from twisted.internet import reactor    root = Responsefile('WebFolder')    testHandler = TestHandler()    root.putChild('main',testHandler)    reactor.ListenTCP(3650,server.Site(root))    reactor.run()

代码的第一位是子类定义本身(非常简单),而第二位是我的代码的初始化部分(这不是我的所有代码).我还有一个resource.Resource对象的子类,名为TestHandler. WebFolder是另一个包含许多静态文件的文件夹.

但是,在调用服务器时,我得到了大多数这类异常.

Unhandled ErrorTraceback (most recent call last):Failure: exceptions.RuntimeError: Producer was not unregistered for /

除了root之外还有许多不同的路径.最佳答案代码中的问题在于render_GET方法.它什么都不返回.基本上它必须返回用于同步响应的字符串和用于异步响应的NOT_DONE_YET值.在您的情况下,render_GET返回None(并且您的连接立即关闭).

因此,您必须在render_GET中进行较小的更改(添加正确的返回值):

def render_GET(self,request):    request.setheader('Content-disposition',['attachment ; filename="tick_db_export.csv"'])    return static.file.render_GET(self,request)

如果你检查twisted.web.static.py模块,你会发现file.render_GET生成生产者并返回NOT_DONE_YET,这使得连接保持不变直到它没有显式关闭(在我们的例子中,在下载文件之后). 总结

以上是内存溢出为你收集整理的python – 对static.File进行子类化全部内容,希望文章能够帮你解决python – 对static.File进行子类化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1205505.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存