我有一个flask应用程序,该应用程序返回带有动态生成的文本的模板。我想根据同样动态生成的列表变量在文本变量中加粗特定单词。
让我们说我的两个变量如下
text = "Stephen went to the park on Tuesday with Sarah.
Stephen couldn't go to my birthday party."
list=['Stephen', 'Sarah', 'Tuesday']
所需的html输出: 斯蒂芬与萨拉在星期二一起去了公园。 斯蒂芬无法参加我的生日聚会。
我为如何解决此类问题而烦恼,不胜感激。
编辑: Python代码
return render_template('results.html', ctext=boldened_text)
HTML代码
<h6>Your Text was</h6>
<div class="alert alert-info" role="alert"><p>{{ctext}}</p></div>
答案 0 :(得分:1)
# Loop over all words
for word in list:
# replace the word by bold tags with the word in between
text = text.replace(word, '<b>%s</b>' % word)
答案 1 :(得分:1)
为了更好地控制,我建议使用for循环(在此示例中简化为列表理解):
text = "Stephen went to the park on Tuesday with Sarah. Stephen couldn't go to my birthday party."
filter_list = ['Stephen', 'Sarah', 'Tuesday']
boldened = " ".join(["<b>{}</b>".format(word) if word.strip() in filter_list else word for word in text.split(" ")])
要查看此输出使用什么:
print(boldened)
预期输出:
"<b>Stephen</b> went to the park on <b>Tuesday</b> with Sarah. <b>Stephen</b> couldn't go to my birthday party."
注意::请记住,在Python list
是一种类型,请勿将其用作变量的标识符。
此外,由于没有将<b>
变量呈现为HTML,因此您将ctext
标签打印为纯文本,请改写为:
{{ ctext | safe }}
警告:仅将safe
用于您绝对确定为 实际上安全 的字符串!
祝你好运。