1
我正在製作一個社交網站。我想知道如何在python中創建一個jinja過濾器來創建任何以@開頭的單詞來指向他們的配置文件。如何使過濾器來檢查是否有人用@標記了用戶?
我正在製作一個社交網站。我想知道如何在python中創建一個jinja過濾器來創建任何以@開頭的單詞來指向他們的配置文件。如何使過濾器來檢查是否有人用@標記了用戶?
這裏有一個神社過濾器,你可以使用:
from flask import Markup
def linkify(text):
return Markup(re.sub(r'@([a-zA-Z0-9_]+)', r'<a href="/\1">@\1</a>', text))
它發現用戶名開始@
,包含大寫或小寫字母,數字和下劃線。它取代了它的鏈接配置文件(\1
代表自己的用戶名,而不@
)
這裏是你如何把它添加到你的環境:
app.jinja_env.filters['linkify'] = linkify
而從神社模板調用它:
在Python殼{{ post|linkify }}
編輯
運行此:
>>> import re
>>> text = 'This is a post mentioning @nathancahill and @jacob_bennet'
>>> re.sub(r'@([a-zA-Z0-9_]+)', r'<a href="/\1">@\1</a>', text)
'This is a post mentioning <a href="/nathancahill">@nathancahill</a> and <a href="/jacob_bennet">@jacob_bennet</a>'
你是否得到相同的輸出?
它似乎沒有工作:( –
什麼似乎沒有工作?是否有錯誤或追溯? – nathancahill
它不會創建一個鏈接,它只是創建文本 –