示例:构建写入 Snowflake 的表单¶
本示例将引导您构建一个 Streamlit in Snowflake 应用程序,该应用通过表单收集用户输入并将其写入 Snowflake 表。该应用还会回读数据以显示所有提交内容,并使用 st.user 跟踪每条记录的提交者。
该应用程序使用容器运行时。在开始之前,请确保您已完成 先决条件。
设置目标表¶
本示例使用名为 crud_demo 的数据库。您可以替换为任何有权访问的数据库和架构,只需更新 SQL 和应用程序代码中的引用以保持一致即可。
创建一个表来存储表单提交。在工作表或 SQL 会话中运行以下 SQL:
编写应用程序代码¶
在本地计算机上,创建一个名为 streamlit_app.py 的文件,其中包含以下代码。如果您计划使用 Snowsight,您可以在创建应用程序后将此代码粘贴到编辑器中。
此应用程序使用:
st.form在提交前收集输入,从而避免每次小组件交互时都重新运行。st.connection("snowflake").session()以获取用于写入数据的 Snowpark 会话。有关更多信息,请参阅 管理密钥并配置 Streamlit 应用程序。session.sql()而非conn.query()回读提交内容。conn.query()默认会缓存结果,因此新条目需等待缓存过期后才会显示。session.sql()则在每次重新运行时执行全新查询。st.user.user_name记录每个条目的提交者。有关更多信息,请参阅 使用用户信息个性化您的 Streamlit 应用程序。
声明依赖关系¶
此应用程序仅使用 streamlit 以及内置的 Snowflake 连接,因此不需要额外的依赖关系。
有关更多信息,请参阅 管理 Streamlit 应用程序的依赖项。
部署应用程序¶
登录 Snowsight。
在导航菜单中,选择 Projects » Streamlit。
选择 + Streamlit App。
输入
feedback_app作为应用程序名称。选择数据库和架构。
选择 Run on container,然后选择一个计算池和查询仓库。
选择 Create。
在编辑器中,将起始代码替换为上面的应用程序代码。
选择 Run。
暂存应用程序文件:
创建 Streamlit 应用程序:
要查看应用程序,请登录 Snowsight,在导航菜单中选择 Projects » Streamlit,然后选择您的应用程序。
备注
需要 Snowflake CLI 3.14.0 或更高版本。3.14+ 版本默认使用现代 CREATE STREAMLIT 语法。
创建具有以下结构的项目目录:
创建
snowflake.yml文件:部署应用程序:
试用应用程序¶
在浏览器中打开应用程序。
填写表单字段并选择 Submit。
表单下方的反馈表会更新以显示您的新提交内容,包括您的电子邮件地址和时间戳。
再提交几个条目,然后尝试对表中的数据进行筛选或排序。
扩展应用程序¶
尝试在每行旁边添加一个删除按钮,或者添加一个按类别显示平均评分的图表。例如,在数据框后添加以下内容:
如果添加 plotly,请在 requirements.txt 文件中声明它:
对于更复杂的依赖关系场景,可以改用 pyproject.toml 文件。有关更多信息,请参阅 管理 Streamlit 应用程序的依赖项。
清理¶
要移除此示例中创建的资源,请运行以下 SQL:
下一步是什么?¶
创建 Streamlit 应用程序:选择使用 时默认使用的角色和仓库。了解创建应用程序的所有选项。
使用用户信息个性化您的 Streamlit 应用程序:选择使用 时默认使用的角色和仓库。探索通过
st.user可用的所有用户属性。管理密钥并配置 Streamlit 应用程序:选择使用 时默认使用的角色和仓库。访问应用程序中的密钥和外部服务。
共享 Streamlit in Snowflake 应用程序:选择使用 时默认使用的角色和仓库。与其他用户共享您的应用程序。