如何使用jQuery刷新Python列表对应的页面标签内容?
解决方案:用jQuery刷新Flask页面中的Python列表内容
首先我先帮你补全并完善Flask后端代码,确保接口能正常返回水果数据,再实现前端的jQuery异步刷新逻辑。
1. 完善Flask后端代码
你原来的/get_fruits/路由不完整,我帮你改成支持数量参数的接口,确保能正确返回指定数量的水果列表:
from flask import Flask, render_template, request, jsonify import requests app = Flask(__name__) fruits = ["Apple","Mango","Peach","Pineapple","jackfruit","guava","banana","cucumber"] @app.route('/index') def index(): # 首次加载默认获取3个水果 response = requests.get('http://127.0.0.1:5000/get_fruits/3') out = response.json() return render_template('index.html', fruits=out['fruits']) @app.route('/') def home(): return "Home page" # 补全并完善获取水果的接口,接收数量参数 @app.route('/get_fruits/<int:count>') def get_fruits(count): # 防止请求数量超过水果列表总长度 if count > len(fruits): count = len(fruits) # 截取对应数量的水果 selected_fruits = fruits[:count] return jsonify({'fruits': selected_fruits}) if __name__ == '__main__': app.run(debug=True)
2. 编写前端模板(templates/index.html)
这个模板会展示水果列表,同时通过jQuery实现无刷新更新内容的功能,你可以选择手动点击刷新或者定时自动刷新:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Fruit List</title> <!-- 引入jQuery --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <h1>My Fruit List</h1> <!-- 用来承载水果列表的容器 --> <ul id="fruit-container"> {% for fruit in fruits %} <li>{{ fruit }}</li> {% endfor %} </ul> <!-- 手动刷新按钮 --> <button id="refresh-btn">Refresh Fruit List</button> <script> $(document).ready(function() { // 定义刷新水果列表的核心函数 function refreshFruits() { // 这里可以自定义获取的水果数量,比如随机生成1-8个 const randomCount = Math.floor(Math.random() * 8) + 1; // 异步请求后端接口 $.get(`/get_fruits/${randomCount}`, function(data) { // 清空现有列表 $('#fruit-container').empty(); // 把新水果逐个添加到页面 data.fruits.forEach(function(fruit) { $('#fruit-container').append(`<li>${fruit}</li>`); }); }); } // 点击按钮触发刷新 $('#refresh-btn').click(function() { refreshFruits(); }); // 可选:开启定时自动刷新,每5秒更新一次 setInterval(refreshFruits, 5000); }); </script> </body> </html>
3. 核心逻辑说明
- 后端接口:
/get_fruits/<int:count>接收整数参数,返回对应数量的水果JSON数据,方便前端解析处理。 - 前端jQuery逻辑:
- 用
$.get()发起异步请求,避免整个页面重载。 - 请求成功后先清空原有容器,再动态插入新的水果列表项。
- 同时支持手动点击刷新和定时自动刷新两种模式。
- 用
- 首次加载:初始页面由Flask模板渲染填充水果列表,后续更新完全通过AJAX异步完成。
这样就能实现只刷新展示水果的标签内容,不用重载整个页面啦!
内容的提问来源于stack exchange,提问作者Subhayan Bhattacharya
相关产品推荐
相关产品推荐

