Python Django URLField公司

2024-09-30 00:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django项目,其中包含带有URLField的模型。对于同一个项目,我正在编写非Django Python脚本,并希望规范化url。在

url1 = //habrastorage.org/files/fa9/f33/091/fa9f330913c0462c8f576393f4135ec6.jpg
url2 = http://habrastorage.org/files/fa9/f33/091/fa9f330913c0462c8f576393f4135ec6.jpg
url3 = www.habrastorage.org/files/fa9/f33/091/fa9f330913c0462c8f576393f4135ec6.jpg

如何使URL规范化?是否可以将url强制转换为Django的URLField的实例?理想情况下,我更希望所有url的格式都与url2相同。在

谢谢!在


Tags: 项目djangoorg模型脚本urlfiles规范化
2条回答

如果你想知道它是如何完成的,请检查代码。在这里,您将找到格式化返回字符串的to_python函数。在

https://github.com/django/django/blob/master/django/forms/fields.py#L705-L738

它使用urlparse或者更确切地说是django自己的副本来支持python2和3。在

我不确定您想要实现什么,但是要使您的url规范化,使其看起来像第二个url,您可以使用正则表达式并使用regex模块进行替换。在

formatted_url = re.sub(r'^((http\:|)//|www\.)?(?P<url>.*)', r'http://\g<url>', your_url)

这将采用//blabla.comwww.blabla.com和{}格式的任何url并返回{}

下面是一个如何使用它的示例

^{pr2}$

相关问题 更多 >

    热门问题