gpt4 book ai didi

python - Twisted 非默认根 HTTP

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:20 25 4
gpt4 key购买 nike

  1. 所以我想让所有的 url 都以“/files”开头。

  2. 位于“localhost:3000/files”的根页面将返回将要共享的特定文件夹的列表。默认共享不允许我限制要共享的文件夹。

  3. 我想在导航到文件夹时显示文件夹中的所有文件。使用类似“localhost:3000/files/Documents”的 URL。

  4. 我想递归共享特定的文件夹和文件夹中的文件。使用类似“localhost:3000/files/Documents/Filename.pdf”的 URL。

    from twisted.web.server import Site
    from twisted.web.resource import Resource
    from twisted.web.static import File
    from twisted.internet import reactor

    folder_list = ["Documents", "Downloads"]


    class RootPage(Resource):
    isLeaf = True
    def render_GET(self, request):
    print request.uri
    new_request = request.uri[7:]
    if len(new_request) <= 3:
    ret = ""
    for folders in folder_list:
    ret += "<a href='%s'>%s</a></br>" % ("/files/" + folders.replace(" ", "-") , folders)
    return ret

    root = Resource()
    #folders
    root.putChild('files', RootPage())

    for folders in folder_list:
    root.putChild( folders.replace(" ", "-"), File("/home/user1/" + folders))

    factory = Site(root)

    reactor.listenTCP(3000, factory)
    reactor.run()

最佳答案

问题

1) 在 .putChild() 调用中,您将文件夹 URL 建立为根目录的子目录,而不是 /files 的子目录。

2) 在 RootPage 类定义中,将 isLeaf 设置为 True。但是您创建的是内部节点,而不是叶节点。


解决方案

删除isLeaf 行,并将其他相关行更改为:

root = Resource()
rootpage = RootPage()
#folders
root.putChild('files', rootpage)

for folders in folder_list:
rootpage.putChild( folders.replace(" ", "-"), File("/home/user1/" + folders))

factory = Site(root)

关于python - Twisted 非默认根 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825047/

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