Python金字塔中的文件响应';取消';彼此都出去了?

Python金字塔中的文件响应';取消';彼此都出去了?,python,httpresponse,pyramid,Python,Httpresponse,Pyramid,这里有三个金字塔视图可调用项,用于设置包含数据和两个图像文件的页面。问题是,只返回一个图像(文件响应)。看起来我一次只能返回一张图片。如果我拿走其中一个文件响应vc,则会返回其他图像。但是,如果我有respone vc的两个文件,则只返回第二个图像。我用第二个vc覆盖的第一个vc中有什么对象吗 是否有更好的方法返回两个图像(文件),即使是在第一个#titlevc中?现在的情况是,即使成功了,我也必须为一个模板从数据库中检索同一文档3次。如有任何建议或线索,将不胜感激 # title @view_

这里有三个金字塔视图可调用项,用于设置包含数据和两个图像文件的页面。问题是,只返回一个图像(文件响应)。看起来我一次只能返回一张图片。如果我拿走其中一个文件响应vc,则会返回其他图像。但是,如果我有respone vc的两个文件,则只返回第二个图像。我用第二个vc覆盖的第一个vc中有什么对象吗

是否有更好的方法返回两个图像(文件),即使是在第一个
#title
vc中?现在的情况是,即使成功了,我也必须为一个模板从数据库中检索同一文档3次。如有任何建议或线索,将不胜感激

# title
@view_config(
        route_name='title',
        renderer='templates/titles/title.jinja2')
def title(request):
    title = Title().find_one({'_id':ObjectId(request.matchdict['_id'])})
    result = dict(
            user = request.user,
            title = title)
    return result

# view title image
@view_config(route_name="view_title_image")
def jpg(request):
    fd = Title().find_one({'_id':ObjectId(request.matchdict['title_id'])}).TitleImage
    response = Response(content_type='application/jpg')
    response.app_iter = fd.File
    print fd
    return response

# view trailer thumbnail
@view_config(route_name="view_trailer_thumbnail")
def jpg(request):
    fd = Title().find_one({'_id':ObjectId(request.matchdict['title_id'])}).TrailerThumbnail
    response = Response(content_type='application/jpg')
    response.app_iter = fd.File
    print fd
    return response
以下是从
\uuuu init\uuuu
配置的路由:

# title
config.add_route('title', '/title/{_id}')

# view title image
config.add_route('view_title_image', '/view/title_image/{title_id}')

# view title image
config.add_route('view_trailer_thumbnail', '/view/trailer_thumbnail/{title_id}')
以下是其在Jinja2模板中的使用方式:

<img src="/view/title_image/{{ title._id }}">

<img src="/view/trailer_thumbnail/{{ title._id }}">

我认为您的问题在于两个视图都有名为jpg的函数

尽管覆盖这样的函数不是一个好主意,但我认为这对视图配置装饰器来说根本没有问题。我能想到的唯一一件事是,与其记录对函数的引用,view_config计算出虚线路径是什么,并记录它


无论如何,给视图函数取不同的名称,这样就可以了。

config.add_route()调用是什么?对映像的单独调用是否会产生一致的结果?所以访问
/view/title\u image/someid
/view/title\u image/someid
都可以,对吗?您正在运行单线程开发服务器吗?切换到一个能够同时处理多个请求的服务器是否有帮助?@Daniel我已经添加了config.add_route()calls@MartijnPieters,是的,单独调用时两个都可以工作,但当使用相同的渲染调用它们时,只有一个可以工作。@MFB:您是在
pserve
下运行此操作的,对吗?这只是一个单线程设置,您的浏览器可能也在尝试管道化请求。我怀疑问题就在那里。。