几天前,我尝试学习 python twisted..
这就是我制作网络服务器的方式:
from twisted.application import internet, service
from twisted.web import static, server, script
from twisted.web.resource import Resource
import os
class NotFound(Resource):
isLeaf=True
def render(self, request):
return "Sorry... the page you're requesting is not found / forbidden"
class myStaticFile(static.File):
def directoryListing(self):
return self.childNotFound
#root=static.file(os.getcwd()+"/www")
root=myStaticFile(os.getcwd()+"/www")
root.indexNames=['index.py']
root.ignoreExt(".py")
root.processors = {'.py': script.ResourceScript}
root.childNotFound=NotFound()
application = service.Application('web')
sc = service.IServiceCollection(application)
i = internet.TCPServer(8080, server.Site(root))#@UndefinedVariable
i.setServiceParent(sc)
在我的代码中,我为 twisted.web.static.Fileoverride
和directoryListing
.
因此,当用户尝试访问我的资源文件夹(http://localhost:8080/resource/
或http://localhost:8080/resource/css
)时,它将返回一个 notFound 页面。
但他仍然可以打开/阅读http://localhost:8080/resource/css/style.css
.
有用...
我想知道的是..这是正确的方法吗???
还有另一种“完美”的方式吗?
我正在寻找一个禁用 directoryListing 之类的配置root.dirListing=False
。但没有运气...