如何将我的streamlit应用程序与MySQL数据库连接



所以我试图在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并将其导入到您的应用程序文件中。您还需要Pandastoml当然:

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查询(应用语法(。

此信息基于我自己的经验。

相关内容

  • 没有找到相关文章

最新更新