这是三个 Pyramid view_callables,它们设置了一个包含数据和两个图像文件的页面。麻烦的是,只返回一张图像(文件响应)。看来我一次只能返回一张图像。如果我拿走其中一个文件响应 vc,则返回其他图像。但是,如果我有两个文件响应 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
以下是来自的路线配置__init__
:
# 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 }}">