我的模板中有一个变量key.links.self
(来自json输出),它是一个URL:
https://ahostnamea.net:666/api/v1/
现在我想做的就是从此变量仅在模板ahostnamea
中进行渲染。
我知道可以剪切字母,但是当第一个字母始终具有相同的计数(https://
= 8个字母)时,其余字母就不是那么简单,而且会有所不同。
有什么方法可以将字符串从/
拆分/切割为.
吗?还是其他方式?
答案 0 :(得分:0)
一个合适的解决方案是{{ request.META.HTTP_HOST }}
答案 1 :(得分:0)
您可以使用具有捕获组和否定字符类[^.]+
的模式,该字符类与除点以外的任何字符都匹配。
https?://([^.]+)
例如
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/")
您可以通过分割一个点来获得第一部分:
s = o.hostname.split('.', 1)[0]
print(s)
结果
ahostnamea