Tôi đã xác định bộ lọc Django tùy chỉnh của mình youtube_embed_url trong templatetags/custom_filters.py. Phải mất một url Youtube và trả về chuỗi mã nhúng cho video. Mã cho templatetags/custom_filters.py ở bên dưới:Django: chuyển đổi URL Youtube sang mã nhúng HTML
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
Sau đó, tôi sử dụng bộ lọc này trong trang link_page.html. Dưới đây là phần có liên quan của link_page.html:
<div>
{{ link.url|youtube_embed_url }}
</div>
Tuy nhiên, khi tôi xem các trang liên kết trong trình duyệt của tôi xem mã HTML như chuỗi:
Bất kỳ ý tưởng làm thế nào để làm cho kết quả của phương thức youtube_embed_url được hiểu là mã HTML chứ không phải là chuỗi? Cảm ơn trước, các bạn!
Trong khi chúng tôi chờ đợi một câu trả lời thật, xin hãy xem qua http://stackoverflow.com/questions/4848611/django-rendering-a-template-variable- as-html – kush
@Arman, Cảm ơn bạn đã viết mã hữu ích. –
Điều này sẽ tạo ra đoạn trích Django tuyệt vời ... – nicorellius