Django:将Youtube URL转换为HTML嵌入代码

Django:将Youtube URL转换为HTML嵌入代码,django,youtube,embed,django-templates,Django,Youtube,Embed,Django Templates,我在templatetags/custom_filters.py中定义了我的自定义Django过滤器youtube_embed_url。它获取Youtube url并返回作为视频嵌入代码的字符串。templatetags/custom_filters.py的代码如下: from django import template from django.conf import settings register = template.Library() import re @register.fil

我在templatetags/custom_filters.py中定义了我的自定义Django过滤器youtube_embed_url。它获取Youtube url并返回作为视频嵌入代码的字符串。templatetags/custom_filters.py的代码如下:

from django import template
from django.conf import settings
register = template.Library()
import re

@register.filter(name='youtube_embed_url')
# converts youtube URL into embed HTML
# value is url
def youtube_embed_url(value):
    match = re.search(r'^(http|https)\:\/\/www\.youtube\.com\/watch\?v\=(\w*)(\&(.*))?$', value)
    if match:
        embed_url = 'http://www.youtube.com/embed/%s' %(match.group(2))
        res = "<iframe width=\"560\" height=\"315\" src=\"%s\" frameborder=\"0\" allowfullscreen></iframe>" %(embed_url)
        return res
    return ''

youtube_embed_url.is_safe = True
来自django导入模板的

从django.conf导入设置
register=template.Library()
进口稀土
@register.filter(name='youtube\u embed\u url')
#将youtube URL转换为嵌入HTML
#值是url
def youtube_嵌入_url(值):
match=re.search(r'^(http | https)\:\/\/www\.youtube\.com\/watch\?v\=(\w*)(\&(.*)?$,值)
如果匹配:
嵌入http://www.youtube.com/embed/%s'%(匹配组(2))
res=”“%(嵌入url)
返回res
返回“”
youtube\u embed\u url.is\u safe=True
然后我在link_page.html页面中使用这个过滤器。以下是link_page.html的相关部分:

<div>
{{ link.url|youtube_embed_url }}
</div>

{{link.url}youtube_embed_url}
但是,当我在浏览器中查看链接页面时,我看到HTML代码为字符串:

知道如何将youtube\u embed\u url方法的结果解释为HTML代码而不是字符串吗?伙计们,提前谢谢

很好

您也可以使用

用法非常相似:

{% load embed_video_tags %}

{{ link.url|embed:'560x315' }}

当我们等待真正的答案时,请看一下@Arman,谢谢你的有用代码。这将是一个很酷的Django片段……我还应该注意到一些YouTube URL有破折号和下划线,所以你的正则表达式可能需要调整。
{% load embed_video_tags %}

{{ link.url|embed:'560x315' }}