所以我试图在MySQL上使用我的(持续更新(数据库,并将一些可视化效果放入我的Streamlight应用程序中。换句话说,我想在我的Streamlit应用程序中使用MySQL数据库中的数据。
为此,我查阅了此处的官方streamlight文档。
这里的问题是教程告诉我创建一个这样的文件:.streamlit/secrets.toml
并用以下信息填充它(复制语法(:
[
mysql
]
host = "localhost"
port = 3306
database = "xxx"
user = "xxx"
password = "xxx"
到目前为止一切都很好,但当我将secret.toml
信息粘贴到SECRET MANAGEMENT小部件中时(当我在Streamlit云中创建新应用程序时会出现提示(,会出现语法错误。
无效格式:请输入有效的TOML。
到目前为止,我一直在按书(教程(。现在,我尝试只使用如下变量定义(因为我不知道.toml
语法(:
db_user = "root"
db_name = "dbname"
db_password = "123abc"
我这样做对吗?还是我错过了一些显而易见的东西?
除此之外,我还需要知道如何为我的应用程序调用流云上的依赖项。例如,我需要mysql-connector-python
模块,但我看不到任何控制台可以进行
注意:这是我第一次在云上部署应用程序
[
mysql
]
应为单行中的[mysql]
在GitHub repo中,添加带有依赖项的requirements.txt
文件。
streamlitcloud将为您的应用程序安装这些软件包。
我想通知您,我们可以在Streamlit应用程序中使用数据库,而不是使用传统方法。
我们可以在这里参考Medium.com的这篇文章。
它解释了一种使用Pandas
库加载数据库并实时更新的方法。通过使用这些知识,连接到数据库就变成了一种"连接";Python";问题,而不是";streamlit";问题
假设我们使用的是MySQL
根据MySQL数据库的官方教程,我们可以创建一个.streamlit/secrets.toml
文件,在其中存储我们的信息(与我们的数据库相关(,如下所示:
# .streamlit/secrets.toml
[
mysql
]
host = "localhost"
port = 3306
database = "xxx"
user = "xxx"
password = "xxx"
还要为python安装mysql-connector-python
并将其导入到您的应用程序文件中。您还需要Pandas
和toml
当然:
pip install mysql-connector-python pandas toml
以下是他们每个人的工作:|图书馆|它的用途||--------|---------------||mysql连接器python|连接到我们的数据库||pandas|读取数据库表并将其转换为Dataframe||toml|从secrets.toml文件|读取详细信息
步骤1
我们阅读了secrets.toml
的详细信息
# Reading data
toml_data = toml.load("secrets.toml")
# saving each credential into a variable
HOST_NAME = toml_data['mysql']['host']
DATABASE = toml_data['mysql']['database']
PASSWORD = toml_data['mysql']['password']
USER = toml_data['mysql']['user']
PORT = toml_data['mysql']['port']
步骤2
连接到我们的数据库:
# Using the variables we read from secrets.toml
mydb = connection.connect(host=HOST_NAME, database=DATABASE, user=USER, passwd=PASSWORD, use_pure=True)
步骤3
从我们的数据库进行查询:
query = pd.read_sql('SELECT * FROM mytable;' , mydb)
query
变量现在是streamlight或Jupyter笔记本中的可显示表格
同样,我们可以从数据库中生成任何我们想要的MySQL查询(应用语法(。
此信息基于我自己的经验。