gpt4 book ai didi

python - Django - 替换部分 urlfield

转载 作者:太空狗 更新时间:2023-10-30 01:15:33 25 4
gpt4 key购买 nike

我现在可以加载 youtube 的单个视频 URL。但是现在的问题是加载youtube的播放列表视频。所以我的问题是,如何替换两个相同的模式,但两者都有不同的 url 替换?

例如:

实际网址:

<iframe width="400" height="327" src="http://www.youtube.com/embed/1UiICgvrsFI&amp;list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp&amp;index=1" allowfullscreen="true"></iframe>

将pattern替换成这样:

<iframe width="560" height="315" src="//www.youtube.com/embed/1UiICgvrsFI?list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp" allowfullscreen></iframe>

此处第一个 & 更改为 ? 和第二个 & 及其后续内容,即 &index=1 被剥离。

这是模型.py:

class Video(models.Model):
title = models.CharField(max_length=100)
video_url = models.URLField(max_length=100)

def save(self, *args, **kwargs):
new_url = (self.video_url.replace("watch?v=","v/"))
super(Video, self).save(*args, **kwargs)
if new_url:
self.video_url = new_url

编辑:

def save(self, *args, **kwargs):
new_url = re.sub('watch\?v=','embed/',self.video_url)
new_url = re.sub(r'^(http:\/\/)([\w\W]+)\&amp;list=([\w\W]+)(\&amp;index=[\d]+)$', r'//\2?list=\3', new_url)
if new_url:
self.video_url = new_url
super(Video, self).save(*args, **kwargs)

最佳答案

首先,您的网址似乎已编码。请检查您的模板 (https://docs.djangoproject.com/en/dev/ref/templates/builtins/#urlencode) 中是否没有 |urlencode 过滤器。

要将视频 URL 更改为播放列表 URL,您必须使用正则表达式。您可以创建一个方法,将您的视频 URL 转换为播放列表 URL:

import re
...
def playlist_url(self):
"""
Generates a playlist URL
"""
new_url = re.sub(r'^(http:\/\/)([\w\W]+)&list=([\w\W]+)(\&index=[\d]+)$', r'//\2?list=\3', self.video_url)
return new_url
...

关于python - Django - 替换部分 urlfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com