当前位置: 首页 > 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的制作带来了不小的变化,代表了未来发展的一种趋势。

相关文章:

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

之前我采用sreamlit制作了一个调查问卷的APP, 又使用MongoDB作为外部数据存储,隐约觉得外部数据库对于web APP具有多方面的意义,代表了web APP发展的趋势之一,似乎是作为对这种趋势的响应,streamlit官方近期开发了st.c…...

Gitpod: 我们正在离开 Kubernetes

原文:Christian Weichel - 2024.10.31 Kubernetes 似乎是构建远程、标准化和自动化开发环境的显而易见选择。我们也曾这样认为,并且花费了六年时间,致力于打造最受欢迎的云开发环境平台,并达到了互联网级的规模。我们的用户数量达…...

1.每日SQL----2024/11/7

题目: 计算用户次日留存率,即用户第二天继续登录的概率 表: iddevice_iddate121382024-05-03232142024-05-09332142024-06-15465432024-08-13523152024-08-13623152024-08-14723152024-08-15832142024-05-09932142024-08-151065432024-08-131123152024-…...

普通一本大二学生,软件工程,想考研985,想知道哪个大学的软件工程好,又不至于完全考不起的?

竞争难度适中:相较于顶尖985院校,重庆大学作为实力派985高校,其竞争烈度较为温和,考研难度适中偏易,为追求高性价比深造路径的考生提供了理想之选。 考试难度友好:重庆地区考研评分标准相对宽松&#xff0…...

「QT」几何数据类 之 QMatrix4x4 4x4矩阵类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

让Apache正确处理不同编码的文件避免中文乱码

安装了apache2.4.39以后&#xff0c;默认编码是UTF-8&#xff0c;不管你文件是什么编码&#xff0c;统统按这个来解析&#xff0c;因此 GB2312编码文件内的中文将显示为乱码。 <!doctype html> <html> <head><meta http-equiv"Content-Type" c…...

人员密集场所遇到突发火灾事故该如何应对

0引言 在繁华喧嚣的都市中&#xff0c;人员密集场所如购物中心、电影院、办公楼等&#xff0c;是人们日常生活不可或缺的一部分。然而&#xff0c;在这些看似繁华的背后&#xff0c;隐藏着不可忽视的安全隐患——火灾。火灾无情&#xff0c;往往在不经意间爆发&#xff0c;瞬间…...

使用QtWebEngine的Mac应用如何发布App Store

前言 因为QtWebEngine时第三方包,苹果并不直接支持进行App Store上签名和发布,所以构建和发布一个基于使用QtWebEngine的应用程序并不容易,这里我们对Qt 5.8稍微做一些修改,以便让我们的基于QtWeb引擎的应用程序并让签名能够得到苹果的许可。 QtWebEngine提供了C++和Qml的…...

微机原理与接口技术——中断系统与可编中断控制芯片8259A

目录 一、8259A 芯片介绍 二、8259A 的内部结构和引脚 三、8259A 的中断工作过程 四、8259A 的工作方式 五、8259A 的编程 六、外部中断服务程序 一、8259A 芯片介绍 Intel 8259A 是可编程中断控制器&#xff0c;可用于管理 Intel 8080/8085、8086/8088、80286/80386 的…...

【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期

目录 1. start() (1) start() 的性质 (2) start() 和 Thread类 的关系 2. 终止一个线程 (1)通过共享的标记结束线程 1. 通过共享的标记结束线程 2. 关于 lamda 表达式的“变量捕获” (2) 调用interrupt()方法 1. isInterrupted() 2. currentThread() …...

面试题分享11月7日

1、ThreadLocal 是什么 是 Java 中线程的本地方法变量&#xff0c;用来存储每个线程的私有数据&#xff0c;每个线程都有它的独立副本&#xff0c;相互隔离&#xff0c;互不影响 2、ThreadLocal 实现原理 每个 ThreadLocal 都有一个 ThreadLocalMap 对象&#xff0c;用来存储…...

数据结构_哈夫曼树及其应用

构造算法的例子 构造算法的实现 初始化&#xff0c;置权值 int i, m, s1, s2;m 2 * n - 1;for (i 1; i < m; i){HT[i].lch 0;HT[i].rch 0;HT[i].parent 0;}for (i 1; i < n; i){cin >> HT[i].weight;}合并结点 // 创建哈夫曼树for (i n 1; i < m; i){s1…...

从0开始学习机器学习--Day19--学习曲线

一般来说&#xff0c;如果一个算法的表现不理想&#xff0c;那么多半是因为出现了欠拟合或过拟合问题&#xff0c;这种时候我们要做的就是搞清楚出现的是偏差问题还是方差问题&#xff0c;亦或是二者皆有&#xff0c;这有助于我们精准定位问题所在。 之前&#xff0c;我们发现…...

2.索引:深入解析 B+ 树:原理、MySQL 应用及与其他数据结构的对比

B 树是一种高效的平衡树结构&#xff0c;在数据库和文件系统中被广泛应用&#xff0c;尤其在 MySQL 中&#xff0c;InnoDB 存储引擎通过 B 树实现索引结构&#xff0c;提升了大数据量条件下的查询性能。 本文将深入介绍 B 树的原理和设计特点&#xff0c;分析 MySQL 中使用 B …...

[全网最细数据结构完整版]第六篇:3分钟带你吃透栈并模拟实现

目录 1->栈的概念和结构 1.1栈的概念 1.2栈的结构 2->栈的实现 2.1定义关于栈的结构体和各种函数 2.2栈的初始化 STInit 函数 2.3栈的销毁 STDestroy 函数 2.4栈的插入操作 STPush 函数 2.5栈的判断是否为空操作 STEmpty 函数 2.6栈的删除操作 STPop 函数 2.7…...

如何在 Docker 容器中启动 X11 图形界面程序

如何在 Docker 容器中启动 X11 图形界面程序 在使用 Docker 时&#xff0c;我们通常会发现&#xff0c;容器中的图形应用没法直接显示到宿主机的界面上。不过&#xff0c;我们可以通过共享 X11 的 Unix 套接字&#xff0c;让容器把显示数据传递给宿主机的 X11 服务器&#xff…...

pycharm保存是自动格式化

在PyCharm中设置保存时自动格式化代码&#xff0c;可以按照以下步骤进行&#xff1a; 1. 打开设置 在Windows和Linux系统中&#xff0c;可以通过File&#xff08;文件&#xff09;->Settings&#xff08;设置&#xff09;打开设置窗口&#xff1b;在Mac系统中&#xff0c;…...

.netCore WebAPI中字符串加密与解密

In today’s digital landscape, securing sensitive information is more critical than ever. If you’re using ASP.NET Core, you might store configuration settings in appsettings.json. However, hardcoding sensitive data like connection strings or API keys in p…...

Next.js + Move 石头剪刀布

rock-paper-scissors 写在前面 本地 源码&#xff1a;https://github.com/zcy1024/SuiStudy/tree/main/rock-paper-scissors # 或其它等价的命令来安装依赖并将项目跑起来 pnpm install pnpm run dev # http://localhost:3000/在线&#xff08;如果没过期的话&#xff09; …...

[面试]关于Redis 的持久化你了解吗

Redis的持久化是指Redis服务器在关闭或重启时&#xff0c;将内存中的数据保存到磁盘上的一种机制。Redis支持多种持久化方式。 一、RDB&#xff08;Redis Database&#xff09;持久化 RDB持久化是Redis默认采用的持久化方式&#xff0c;它将Redis在某个时间点的数据保存到磁盘上…...

ARM架构ADD/AND指令详解与应用优化

1. ARM指令集基础与ADD/AND指令概述在嵌入式系统和移动计算领域&#xff0c;ARM架构凭借其高效能低功耗的特性占据主导地位。作为RISC&#xff08;精简指令集计算机&#xff09;架构的代表&#xff0c;ARM指令集的设计哲学是通过精简而高效的指令完成复杂任务。其中&#xff0c…...

通过用量看板与账单追溯实现团队 AI 成本精细化管理

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过用量看板与账单追溯实现团队 AI 成本精细化管理 对于技术团队而言&#xff0c;将大模型能力集成到产品与研发流程中已成为常态…...

数字信号处理算法在实时系统中的应用【附代码】

✨ 长期致力于实时高速相干光通信、低复杂度数字信号处理模块、并行化研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;无乘法器的恒模算法并行化设计&…...

【免费下载】 高效演示必备:PPT倒计时小工具推荐

高效演示必备&#xff1a;PPT倒计时小工具推荐 【下载地址】PPT倒计时小工具 本仓库提供了一个专为PPT设计的倒计时小工具&#xff0c;该工具可以直接加载到PPT中使用&#xff0c;方便用户在演示过程中进行时间管理。与传统的倒计时工具不同&#xff0c;这个小工具完全集成在PP…...

Spring AI 技术架构深度解析:聊天模型、工具调用与 MCP 协议

摘要&#xff1a;本文从分层架构切入&#xff0c;精简拆解 SpringAI 核心设计思想&#xff0c;详解聊天模型统一抽象、注解式工具调用实战逻辑&#xff0c;同时解析主流模型上下文协议 MCP 在 SpringAI 中的落地价值&#xff0c;助力 Java 开发者快速搭建企业级生成式 AI 应用。…...

FreeRTOS SMP多核调试踩坑记:在TC397上如何确认你的任务真的跑在了对的CPU核心?

TC397多核调试实战&#xff1a;如何验证FreeRTOS任务真的跑在指定核心&#xff1f; 调试多核系统就像在迷宫中寻找出口——即使代码看起来正确&#xff0c;任务也可能悄悄溜到错误的核心上执行。当LED闪烁频率异常、任务响应延迟或系统出现难以解释的锁死时&#xff0c;开发者首…...

基于Vercel AI SDK与Next.js 14构建智能编程助手:从架构到部署实战

1. 项目概述&#xff1a;一个面向开发者的AI编程助手脚手架最近在GitHub上看到一个挺有意思的项目&#xff0c;叫vercel-labs/coding-agent-template。光看名字&#xff0c;你大概能猜到&#xff0c;这是一个跟AI编程助手相关的模板项目。没错&#xff0c;它本质上是一个预先配…...

如何零代码构建专业级在线PPT编辑工具:5大核心技术解析

如何零代码构建专业级在线PPT编辑工具&#xff1a;5大核心技术解析 【免费下载链接】PPTist PowerPoint-ist&#xff08;/pauəpɔintist/&#xff09;, An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing f…...

Oto 多平台适配原理揭秘:从 Windows 到 Android 的底层实现

Oto 多平台适配原理揭秘&#xff1a;从 Windows 到 Android 的底层实现 【免费下载链接】oto ♪ A low-level library to play sound on multiple platforms ♪ 项目地址: https://gitcode.com/gh_mirrors/ot/oto Oto 是一个强大的跨平台音频播放库&#xff0c;支持从 W…...

系统级开发中的夜间MVP构建与Boneyard归档实践

1. 项目概述&#xff1a;一个名为“Boneyard”的夜间MVP构建最近在开源社区里&#xff0c;我注意到一个挺有意思的项目&#xff0c;叫sys-fairy-eve/nightly-mvp-2026-04-05-boneyard。光看这个标题&#xff0c;信息量就很大&#xff0c;它像是一个系统构建流水线上的一个特定快…...