Python/Django:如何渲染用户提交的视频代码片段为嵌入视频?

3 投票
3 回答
1109 浏览
提问于 2025-04-17 00:46

我想让用户在帖子或评论中提交视频链接,并把它们显示为嵌入的视频。

比如,YouTube会提供一些代码来嵌入视频,类似这样的:

<iframe width="420" height="345" src="http://www.youtube.com/embed/Rr6PWlOgPrs" frameborder="0" allowfullscreen></iframe>

如果用户在评论中放入上面的代码片段,我该怎么正确显示它呢?

Django会自动对所有的HTML标签进行转义,所以默认情况下,上面的代码是无法正常工作的。但是如果我关闭这个自动转义功能,就会带来很多安全隐患。

处理这个问题的最佳方法是什么呢?

3 个回答

1

可以试试这个叫 django-embed-video 的工具。它非常简单好用。

3

用户不应该直接插入HTML代码。可以看看 django-oembed 这个工具。这样,用户只需要粘贴网址,oembed 就会自动识别这个网址,并把它转换成嵌入代码。

1

我在我的网站上做的事情是让用户提交一个YouTube视频的链接。不是嵌入代码,只是链接而已。然后我使用oEmbed API去请求YouTube,获取这个链接对应的嵌入HTML代码。如果你信任YouTube的话,就可以直接使用他们给你的HTML代码,而不需要做任何处理。

我这样做已经有6个月了,效果非常好。

撰写回答