当前位置: 首页 > 知识库问答 >
问题:

如何使Streamlit每5秒重新加载一次?

茹展鹏
2023-03-14

我必须每5秒重新加载一个流线图,以便在XLSX报告中可视化新数据。 如何实现这一点?

import streamlit as st
import pandas as pd
import os

mainDir = os.path.dirname(__file__)
filePath = os.path.join(mainDir, "sources\\test.xlsx")
df = pd.read_excel(filePath)

option1 = 'Product'
option2 = 'Quantity'

df = df[[option1, option2]].set_index(option1)

st.write('Product Quantity')
st.area_chart(df)

共有1个答案

洪增
2023-03-14

Streamlit在每次源代码更改时都会识别。 因此,基于这个前提,实现这一点的一种方法是创建一个空的“dummy.py”文件,该文件将由主脚本导入,并由同时运行的另一个脚本每5秒更新一次:

>

  • 在主脚本的同一文件夹中创建一个空的“dummy.py”文件;

    在同一个文件夹中创建一个名为“refresher.py”的脚本

    >

  • 现在将以下While循环放在“refresher.py”文件中,以便每5秒用随机数(注释)更新“dummy.py”:

    from random import randint
    import time
    import os
    
    def refresher(seconds):
        while True:
            mainDir = os.path.dirname(__file__)
            filePath = os.path.join(mainDir, 'dummy.py')
            with open(filePath, 'w') as f:
                f.write(f'# {randint(0, 10000)}')
            time.sleep(seconds)
    
    refresher(5)
    

    在脚本中添加以下行和您的Streamlit图表代码:“from dummy import*”

    运行“refresher.py”脚本;

    使用图表运行Streamlit脚本;

    从现在起,Streamlit会将“dummy.py文件”中的任何修改识别为源代码中的修改;

    一旦网页被完全加载,它将警告您源文件已被更改。 点击“总是重新运行”,就这样。

  •  类似资料:
    • 问题内容: 我正在将一种布局转换为html; 一旦我在code / html / css中进行了更改,每次必须按F5。是否有任何简单的javascript / jQuery解决方案?即,在添加脚本之后,每5秒(或其他特定时间)重新加载整个页面。 问题答案: 如果必须在脚本中使用setTimeout,例如:

    • 问题内容: 我编写了一个CMS,其中记录了谁最近登录了系统。目前,此数据通过Ajax馈入jQuery UI选项卡。我想将此信息放入主页的侧边栏中,并每30秒(或一定时间)通过AJAX加载。 我将如何去做?PHP响应是否需要JSON编码?我对AJAX和JSON数据还很陌生。 这是我目前用于从用户表中提取详细信息的PHP- 谢谢! 更新 好的,这就是我到目前为止所拥有的..我所坚持的部分是如何遍历JS

    • 问题内容: 我从修改了自己需求的网站上获得了此代码: 在test.php中: 所以我想在链接div中每5秒调用一次test.php。我该怎么做呢? 问题答案: 试试看 希望这可以帮助。

    • 本文向大家介绍5秒后如何使用JavaScript加载网页?,包括了5秒后如何使用JavaScript加载网页?的使用技巧和注意事项,需要的朋友参考一下 间隔一段时间后,使用JavaScript中的函数加载网页。此功能等待几秒钟,然后加载网页。 示例 您可以尝试运行以下代码以了解如何在5秒后加载网页-

    • 问题内容: 我想知道如何每x秒重绘和更新JPanel的背景…这是我的代码: 我的代码有2个问题:1-JPanel根本没有被绘制。2-第一张可以打印,然后每次打印数量增加一倍。有什么建议吗?先感谢您 更新:我以这种方式解决了这个问题: 更新2: 问题答案: 使用Swing计时器,

    • 我想知道什么是电池效率最高的方式发送准确的位置更新到服务器/防火墙每5秒,即使应用程序关闭或手机重新启动。我尝试使用alarmmanager.setrepeating和android.intent.action.boot_completed接收器- 使用post一个延迟消息或runnable到一个处理程序不是一个可靠的解决方案,因为一旦应用程序被删除,位置更新就会停止。 是否有可靠的方法每5秒向服

    • 我有一个ionic单页web应用程序,用户在其中完成一些信息并动态创建一些组件(新列、卡片等)。单击按钮后,我想在初始状态下完全重新加载页面。我尝试过角度生命周期挂钩,但似乎没有触发它们,因为路线没有变化。我也尝试了这条路线。导航(['home'),但它不起作用。我不需要保存任何数据。只需重新加载所有内容。