通过呈现variab的中间部分来修改Django模板中的变量

2024-09-27 00:17:44 发布

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

我在模板中有变量key.links.self(来自json输出),它是一个URL:

https://ahostnamea.net:666/api/v1/

现在我要做的是从这个变量只在模板中呈现ahostnamea

我知道剪切字母是可能的,但是当第一个字母总是有相同的计数(https://=8个字母)时,剩下的就不那么简单了,而且会变得不同。

有没有办法将字符串从/拆分/剪切到.?或者其他方式


Tags: key字符串httpsself模板apijsonurl
2条回答

您可以使用一个模式,其中包含一个捕获组和一个否定字符类[^.]+,该类匹配除点以外的任何字符

https?://([^.]+)

Regex demo| Python demo

例如

import re

regex = r"https?://([^.]+)"
test_str = "https://ahostnamea.net:666/api/v1/"
matches = re.search(regex, test_str)

if matches:
    print(matches.group(1))

结果

ahostnamea

编辑

建议您也可以使用urllib.parse来获取主机名

from urllib.parse import urlparse
o = urlparse("https://ahostnamea.net:666/api/v1/")

Python demo

例如,可以通过在点上拆分来获得第一部分:

s = o.hostname.split('.', 1)[0]
print(s)

结果

ahostnamea

一个合适的解决方案是{{ request.META.HTTP_HOST }}

相关问题 更多 >

    热门问题