如何单行遍历列表获取摘要并在Flask页面渲染输出
单行遍历实现代码
你可以直接用列表推导式实现单行遍历获取所有名字的摘要,若需要同步打印,写法如下:
# 仅生成存储所有摘要的列表 outputs = [wikipedia.summary(name, sentences=3, auto_suggest=False) for name in names] # 同时打印每一条摘要 [print(wikipedia.summary(name, sentences=3, auto_suggest=False)) for name in names]
注意:不要直接把整个
names列表传入wikipedia.summary,该方法仅支持传入单个字符串作为查询关键词,否则会触发参数错误。你之前尝试的range(10)遍历写法存在索引越界风险,列表长度不一定等于10,不推荐使用。
Flask 模板渲染实现
你不能直接用{{ output }}渲染所有内容,因为我们拿到的是存储多条摘要的列表,需要按以下步骤调整:
- 首先在Flask视图函数中将生成的摘要列表传入模板:
from flask import Flask, render_template import wikipedia app = Flask(__name__) @app.route('/') def show_summaries(): names = ["Tony Stark", "Will Smith", "LeBron James"] outputs = [wikipedia.summary(name, sentences=3, auto_suggest=False) for name in names] return render_template('你的模板文件.html', outputs=outputs)
- 在对应的HTML模板中用Jinja2循环遍历输出所有摘要:
{% for summary in outputs %} <strong>{{ summary }}</strong> <hr> <!-- 可选,用于分隔不同的摘要内容 --> {% endfor %}
内容的提问来源于stack exchange,提问作者Shikhar Adhikari
相关产品推荐
相关产品推荐

