Flask结合Spinner实现异步加载的秘诀

   2024-09-30 5320
核心提示:要在 Flask 应用中实现异步加载,可以使用 Spinner 和 AJAX。Spinner 是一个用于创建和管理异步任务的库,而 AJAX 则用于在不重

要在 Flask 应用中实现异步加载,可以使用 Spinner 和 AJAX。Spinner 是一个用于创建和管理异步任务的库,而 AJAX 则用于在不重新加载整个页面的情况下从服务器请求数据并更新页面内容。

以下是如何在 Flask 应用中结合 Spinner 和 AJAX 实现异步加载的秘诀:

安装 Spinner:
pip install spinner
在 Flask 应用中设置 Spinner:
from flask import Flask, render_templatefrom spinner import Spinnerapp = Flask(__name__)spinner = Spinner(app)@app.route('/')def index():    return render_template('index.html')@spinner.task()def my_async_task():    # 这里执行你的异步任务    pass
创建一个 HTML 模板(例如 templates/index.html):
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>Flask Async Loading with Spinner</title>   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script></head><body>    <h1>Flask Async Loading with Spinner</h1>   <button id="load-data">Load Data</button>    <div id="data-container"></div>   <script>        $("#load-data").click(function() {            $.ajax({                url: '/load-data',                type: 'GET',                success: function(data) {                    $("#data-container").html(data);                }            });        });    </script></body></html>
添加一个路由来处理 AJAX 请求:
@app.route('/load-data')def load_data():    # 在这里执行你的异步任务并获取结果    result = my_async_task()    return result
运行 Flask 应用:
flask run

现在,当用户点击 “Load Data” 按钮时,将通过 AJAX 发送请求到 /load-data 路由,执行异步任务并将结果显示在页面上,而无需重新加载整个页面。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号