Flask表格仅显示Python列表首行,for循环渲染多行为什么失效?
问题原因排查
你的前端模板循环逻辑没有问题,故障出在Python端的列表构造代码,存在两处逻辑错误:
- 第一处:return语句写在for循环内部,函数在第一次循环完成后就会直接返回结果,永远只会返回第一条数据
- 第二处:每次循环都重新创建仅包含当前行的total_details列表,没有做数据追加,即便修正return位置也只能拿到最后一条数据
修正方案
修改你的列表生成代码,参考写法如下:
def city_details(): # 循环前先初始化空列表存储所有行 total_details = [] for details in data: location = details['location'] street = details['street'] city = details['city'] scale = details['scale'] # 把你省略的剩余字段都补全到元组中 row = (location, street, city, scale, 你省略的其他字段) # 将当前行追加到总列表中,不要覆盖 total_details.append(row) # return写在for循环外面,所有数据处理完成后再返回整个列表 return total_details
修正后不需要改动前端模板代码,即可正常渲染全部表格行。
内容的提问来源于stack exchange,提问作者B L
相关产品推荐
相关产品推荐

