2013-07-29 22 views
1

我有蟒蛇其中包含一個很長的字符串變量「文本」。我有一個字典,其關鍵是一個詞/一組詞,值是一個網址。我需要顯示使用Django這個變量「文本」,產生的所有的單詞/從文本其也存在於字典字的組超鏈接。鏈接已經存儲爲字典中的值。插入超鏈接成文本使用Django

文本= 「泰姬陵是印度」

my_dict = { '泰姬陵': 'URL1', '印度': 'URL2'}使用Django

顯示本文其中「泰姬陵'和'印度'分別是指向url1和url2的超鏈接。 我試圖用urlize,但它並沒有解決問題。

回答

2

您可以使用replace()text變量:

>>> text = "taj mahal is in india" 
>>> my_dict = { 'taj mahal':'url1', 'india':'url2' } 
>>> for key, value in my_dict.iteritems(): 
...  text = text.replace(key, value) 
... 
>>> text 
'url1 is in url2' 

或:

>>> text = "taj mahal is in india" 
>>> for key, value in my_dict.iteritems(): 
...  text = text.replace(key, '<a href="%s">key</a>' % value) 
... 
>>> text 
'<a href="url1">key</a> is in <a href="url2">key</a>' 

如果你想那麼這個text變量傳遞給模板,就可以申請safe過濾器:

{{text|safe}} 

希望有所幫助。

+0

但是這種解決方案的問題是,如果我代替你傳遞後,該變量的文字指出,像模板文件中的Django ** {{文本}} **,然後顯示在UI這個確切的事情,即_ keykey _中,而不是顯示超鏈接。 – VineetChirania

+0

當然,我已經更新了答案,請檢查。 – alecxe

+0

的** | **安全的事情正是我一直在尋找。謝謝你,alecxe :) – VineetChirania