用 Streamlit 和 SQLite 构建高效数据库管理工具
在数据驱动的开发中,数据库管理是一个不可或缺的环节。最近,我开发了一个基于 Python 的简单数据库管理工具,用于管理和展示石窟艺术数据。这个项目不仅帮助我巩固了对 Streamlit 和 SQLite 的理解,还让我体会到了快速开发工具的强大能力。
项目背景
我们的目标是创建一个简单易用的工具,用于管理和展示石窟艺术数据。这些数据存储在一个 SQLite 数据库中,包括雕塑的时期、洞窟名称、洞窟编号、来源、地区以及相关的图片等信息。为了实现这一目标,我选择了 Python 的 Streamlit 框架,因为它能够快速搭建交互式 Web 应用。
技术栈
- Python:作为开发语言,简洁且功能强大。
- Streamlit:用于构建交互式 Web 界面。
- SQLite:轻量级数据库,适合小型项目。
功能实现
1. 数据库操作
我封装了几个关键的数据库操作函数,包括查询、插入/更新和删除记录。以下是部分代码示例:
1 | def query_database(period=None, cave_name=None, cave_number=None, source=None, region=None): |
这些函数通过 SQLite 的 Python 接口实现了对数据库的基本操作。
2. Streamlit 界面开发
Streamlit 的界面开发非常直观。我通过简单的表单和按钮实现了查询、添加/更新和删除记录的功能。以下是部分界面代码:
1 | st.subheader("Query Records") |
通过 Streamlit 提供的组件,如 st.text_input
和 st.button
,用户可以轻松进行数据查询。
3. 图片处理
为了支持图片的上传和展示,我使用了 Pillow
库来处理图片数据,并将其以 BLOB 格式存储在数据库中。以下是图片展示的代码:
1 | def display_image_from_blob(blob_data): |
通过这种方式,用户可以方便地上传图片,并在查询时直接查看图片内容。
项目运行
为了方便启动项目,我编写了一个启动脚本 db_start_streamlit.py
,它会检查环境变量,确保 Streamlit 只运行一次。以下是启动脚本的核心代码:
1 | if __name__ == "__main__": |
通过这个脚本,用户只需运行一个命令即可启动整个应用。
总结
通过这个项目,我不仅巩固了 Python 和 SQLite 的开发技能,还学习了如何使用 Streamlit 构建简单的 Web 应用。这个工具虽然简单,但已经能够满足我们对石窟艺术数据的基本管理需求。未来,我计划进一步优化界面设计,并尝试将数据迁移到更强大的数据库系统中,以支持更大的数据量和更复杂的查询。
如果你对这个项目感兴趣,或者有类似的开发需求,欢迎与我交流!
附录
- 本文作者: 黎玮
- 本文链接: https://lwow.xyz/2025/02/18/如何开发基于-Streamlit-和-SQLite-的数据库管理工具/
- 版权声明: © William-Liwei. All rights reserved.