猿问

如何在不刷新 Flask 项目页面的情况下更新值?

我有一个显示视频游戏中物品价格的网站。


目前,我有一个“自动刷新”脚本,每 5 秒刷新一次页面,但这有点烦人,因为每次您搜索产品时,它都会删除您的搜索,因为页面会刷新。


我想在不为用户刷新页面的情况下更新表中的数字。我在 javascript 中阅读了一些关于“更新 DOM”的内容,但没有理解。


这是我网站的链接:http: //xeltool.com/


这是我的 python 代码:


@app.route('/bprices', methods=['GET'])

def bPrices():

    f = requests.get(

        'https://api.hypixel.net/skyblock/bazaar?key=[cannot show]').json()


    products = [

        {

            "id": product["product_id"],

            "sell_price": product["sell_summary"][:1],

            "buy_price": product["buy_summary"][:1],

            "sell_volume": product["quick_status"]["sellVolume"],

            "buy_volume": product["quick_status"]["buyVolume"],

        }

        for product in f["products"].values()

    ]

    return render_template("bprices.html", products=products)


尚方宝剑之说
浏览 85回答 2
2回答

撒科打诨

您有 3 个选择:AJAX - https://www.w3schools.com/js/js_ajax_intro.aspSSE - https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_eventsWebsocket - https://developer.mozilla.org/en-US/docs/Glossary/WebSockets我认为在您的情况下最好的选择是 SSE,因为服务器知道价格已更改,因此可以将其推送给客户。

临摹微笑

使用 AJAX 询问新价格。API 将返回值,然后在 JS 代码中将之前的价格更改为新价格。AJAX 肯定会有所帮助。看看这里的简单教程:https ://www.w3schools.com/xml/ajax_intro.asp 。
随时随地看视频慕课网APP

相关分类

Python
我要回答