当前位置: 首页 > news >正文

外接数据库给streamlit等web APP带来的变化

之前我采用sreamlit制作了一个调查问卷的APP, 又使用MongoDB作为外部数据存储,隐约觉得外部数据库对于web APP具有多方面的意义,代表了web APP发展的趋势之一,似乎是作为对这种趋势的响应,streamlit官方近期开发了st.connection组件,开发者也提供了st_mongo_connection包,看来有必要厘清一下外部数据库对web APP的多方面的意义和影响。

1. 数据存储与管理
使用了外部数据库之后,填写的数据可以存储在数据库中,不会因为重新启动应用而损失掉,调用的时候,也可以对历史的数据进行调用,应该是最明显的变化,带动了APP功能的扩展。

  • 数据集中管理:所有应用数据集中存储在外部数据库中,方便统一管理和维护。
  • 数据共享:多个应用可以共享同一个数据库,实现数据共享和复用。
  • 数据持久化:数据不再局限于单个应用的内存中,即使应用重启,数据依然存在,保证了数据的持久性。
  • 数据备份与恢复:外部数据库通常提供完善的备份和恢复机制,保障数据安全。

2. APP功能扩展和改变:
在可以长期存储数据之后,web APP的功能可以作为数据库输入数据和展示数据的终端,实现像调查问卷、留言板一类的功能。感觉这时候的APP中的统计数字和图表不再是固定不变的,而是可以随着数据库中数据的变化而自动变化。

  • 数据量扩展:外部数据库可以存储海量数据,突破了本地内存的限制,适用于处理大规模数据集。
  • 应用功能增加:实现调查问卷、留言板一类的功能。
  • 已有应用设计策略的改变:比如预测模型类的APP,可以实现表单收集数据,存储到数据库中,而模型从数据库中调用数据进行训练,实现实时地产生模型。

3. APP架构变化:
数据和APP分离,减小对机器内存的依赖。

  • 数据层分离:应用的业务逻辑与数据存储分离,提高了代码的可维护性。
  • 分布式部署:外部数据库可以部署在分布式环境中,提高系统的可扩展性。
  • 云端集成:外部数据库可以轻松集成云端服务,实现数据的云端存储和管理。

4. 开发流程变化:
主要是多了APP与数据库交互的过程,需要了解这一部分的内容,导致APP开发成本增加,好在数据库、streamlit等都对这方面有相应的介绍,对有前期APP构建基础的来说,上手相对容易。也稍微考察了shiny对外部数据库的支持,也可以通过mongolite R包来实现,但是似乎对部署的安全性考虑的较少,因为数据库的账号和密码是存在代码中的,这一点上不如streamlit(也可能是我考察的不完全。)

  • 数据连接配置:需要配置应用与数据库的连接信息,包括数据库类型、主机地址、端口号、用户名、密码等。
  • 数据模型设计:需要设计数据库表结构,以适应应用的数据需求。
  • 错误处理:需要处理数据库连接异常、SQL执行错误等各种异常情况。

5. 性能影响:
性能上应该会有一定影响。

  • 网络延迟:数据库访问涉及网络通信,可能会引入一定的延迟。
  • 查询优化:需要优化 SQL 查询语句,减少数据库查询的耗时。

总结:

使用外部数据库,可以说给APP的制作带来了不小的变化,代表了未来发展的一种趋势。

http://www.lryc.cn/news/479776.html

相关文章:

  • Gitpod: 我们正在离开 Kubernetes
  • 1.每日SQL----2024/11/7
  • 普通一本大二学生,软件工程,想考研985,想知道哪个大学的软件工程好,又不至于完全考不起的?
  • 「QT」几何数据类 之 QMatrix4x4 4x4矩阵类
  • 让Apache正确处理不同编码的文件避免中文乱码
  • 人员密集场所遇到突发火灾事故该如何应对
  • 使用QtWebEngine的Mac应用如何发布App Store
  • 微机原理与接口技术——中断系统与可编中断控制芯片8259A
  • 【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
  • 面试题分享11月7日
  • 数据结构_哈夫曼树及其应用
  • 从0开始学习机器学习--Day19--学习曲线
  • 2.索引:深入解析 B+ 树:原理、MySQL 应用及与其他数据结构的对比
  • [全网最细数据结构完整版]第六篇:3分钟带你吃透栈并模拟实现
  • 如何在 Docker 容器中启动 X11 图形界面程序
  • pycharm保存是自动格式化
  • .netCore WebAPI中字符串加密与解密
  • Next.js + Move 石头剪刀布
  • [面试]关于Redis 的持久化你了解吗
  • Systemd:tmpfiles
  • 【Flutter 内嵌 android 原生 View以及相互跳转】
  • python externally-managed-environment 外部管理环境
  • 前端 | MYTED单篇TED词汇学习功能优化
  • 64 mysql 的 表锁
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(1)
  • ajax关于axios库的运用小案例
  • 微搭低代码入门01变量
  • 盘点2024年10款视频剪辑,哪款值得pick!!
  • 苹果手机照片批量删除:一键清理,释放空间
  • 《AI 大模型:重塑软件开发新生态》