簡體   English   中英

Flask + Python + Jinja2:如何用HTML代碼部分替換模板參數?

[英]Flask + python + jinja2: how can I partialy replace template arguments with html code?

我具有自動將問題ID替換為鏈接的功能:

def addlinks(text):
    from flask import Markup
    idlist = getallissueids()
    for issueid in idlist:
        text = text.replace( issueid, "<a href=/browse/" + issueid +">" + issueid + "</a>")
    return Markup(text)

然后{{text}}傳遞給模板。

它可以工作,但是有副作用-在此之后,所有類型的html都不會在文本中轉義。 有什么方法可以避免僅對鏈接進行HTML轉義?

在文字上使用安全過濾器。 在模板中看起來像這樣,

{{ text |safe }}

safe將指出在此文本中找到的html是可以安全渲染的,因此不必進行轉義。

模板上的燒瓶頁面簡要介紹了安全濾網,大約在本教程的一半。 安全過濾器僅表示此文本中的所有內容都是安全的,並會關閉html轉義。

那是我今晚發現的工作:

def addlinks(text):
    from flask import Markup
    idlist = getallissueids()
    for issueid in idlist:
        parts = text.split(issueid)
        text = Markup("<a href=/browse/" + issueid +">" + issueid + "</a>").join(parts)     
    return text

您能否解釋一下如何使用此“安全”功能執行相同的操作?

暫無
暫無

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

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