簡體   English   中英

通過渲染變量的中間值來在Django模板中修改變量

[英]Modify variable in django template by rendering middle of variable

我在模板中有一個變量key.links.self (來自json輸出),這是一個URL:

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

現在,我想做的是從此變量僅在模板中呈現ahostnamea

我知道可以剪切字母,但是當第一個字母始終具有相同的計數( https:// = 8個字母)時,其余字母就不是那么簡單,並且會有所不同。

有什么方法可以將字符串從/分割/剪切. 還是其他方式?

適當的解決方案是{{ request.META.HTTP_HOST }}

您可以使用具有捕獲組和否定字符類[^.]+的模式,該字符類與除點以外的任何字符都匹配。

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

正則表達式演示 | Python演示

例如

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演示

您可以通過分割一個點來獲得第一部分:

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

結果

ahostnamea

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM