【发布时间】:2016-06-19 20:19:28
【问题描述】:
我相当肯定我并不完全理解这里的机制,但我正在尝试通过使用 Mongoengine 存储的 Pyramid 框架从 GridFS 流式传输数据来显示视频内容。很遗憾,我的页面找不到内容。
神社2:
<div align="center" class="embed-responsive embed-responsive-16by9">
<video class="embed-responsive-item" controls>
{% if board.video %}
<source src="{{ request.route_url('boards_video', name=board.name, videoname=board.video.filename) }}" type="video/*">
Your browser does not support the video tag. And that makes me sad.
{% else %}
<source src="#" type="video/*">
{% endif %}
</video>
</div>
查看代码:
@view_config(route_name="boards_video")
def boards_video(request):
from .models import Board
name = request.matchdict["name"]
board = Board.objects("name"=name).first().get()
response = Response(content_type=board.video.content_type)
response.content_length = board.video.get().length
response.app_iter = FileIter(board.video)
return response
路线:
config.add_route("boards_video", "/boards/{name}/videos/{videoname}")
型号:
class Board(document.Document):
name = fields.StringField(required=True)
video = fields.FileField()
当我检查 jinja2 生成的源时正在生成 URL,但生成的页面视频内容显示“没有找到支持格式和 MIME 类型的视频”。完成此任务的正确方法是什么?
【问题讨论】:
-
嗯,我认为这肯定与 HTML 标记有关。提供给来自 video 标签的 src 属性的 URL 是有效的,并且可以全屏播放视频。我不确定除了 URL 的使用之外有什么区别肯定是一个请求,它会调用视图。本来以为在src属性中使用url,本质上也是一个请求,但或许不是这样的。
标签: python twitter-bootstrap-3 jinja2 pyramid mongoengine