首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扭曲的、延迟的请求和文件与ErrorPage

扭曲的、延迟的请求和文件与ErrorPage
EN

Stack Overflow用户
提问于 2014-02-18 10:10:22
回答 1查看 74关注 0票数 1

我目前正在构建一个带有python/ with的http服务器。

此服务器必须在另一个web服务器上获取内容,将其本地存储并将响应发送回客户端。如果遇到404,则必须尝试为本地文件提供服务,如果根本没有本地文件,则会失败。

为了实现这一点,我使用了不同的请求。我的代码大致如下所示:

代码语言:javascript
运行
复制
class RemoteFile(Resource):
    isLeaf = True

    def render_GET(self, request):
        # Start downloading the corresponding file on the remote server
        # Will call `self.serve_local_file` when done
        return NOT_DONE_YET

    def serve_local_file(self, request):
        if self.file_exists_for_request(request):
            fileResource = File(filename)
            fileResource.render(request)
        else:
            page = NoResource("No such file")
            html = page.render(request)

            # The next two lines are my problem
            request.write(html)
            request.finish()

我必须添加最后两行(write()finish())才能真正完成请求。我不需要File资源的这些行,因为它自己处理写/完成,不像NoResource。

这本身并不是一个问题,但事实证明这个page变量不是硬编码的,它实际上是类中的一个fallback属性,它应该是一个Resource。这意味着,将来我可以用默认的File替换它。在这种情况下我必须修改我的代码..。

我是不是做错了什么,还是FileErrorPage的接口不一致?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 04:08:38

你的问题本身有一个提示:

代码语言:javascript
运行
复制
return NOT_DONE_YET

这是IResource信号的一部分,它是否返回调用方必须在显式“完成”请求之前写入请求的字符串,或者IResource是否负责执行这些任务。

检查您正在调用render的任何内容的返回值,然后相应地执行操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21850401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档