理解 Streamlit 的客户端-服务器架构
Streamlit 应用程序具有客户端-服务器结构。
您应用程序的 Python 后端即为服务器。您通过浏览器看到的前端即为客户端。
当您在本地开发应用程序时,您的计算机同时运行服务器和客户端。如果有人通过本地或全球网络查看您的应用程序,服务器和客户端将运行在不同的机器上。如果您打算分享或部署您的应用程序,了解这种客户端-服务器结构非常重要,以避免常见的问题。
Python 后端(服务器)
当您执行 streamlit run your_app.py 命令时,您的计算机会使用 Python 来启动一个 Streamlit 服务器。
这个服务器是您的应用程序的核心部分,负责为所有查看您的应用程序的用户执行计算任务。无论用户是在本地网络还是通过互联网查看您的应用程序,Streamlit 服务器都在初始化应用程序的那台机器上运行,即通过streamlit run命令启动的应用程序所在的机器。运行 Streamlit 服务器的这台机器也被称为主机。
浏览器前端(客户端)
当有人通过浏览器访问您的应用程序时,他们的设备就是 Streamlit 客户端。当您在运行或开发应用程序的同一台计算机上查看您的应用程序时,服务器和客户端会恰好在同一台机器上运行。然而,当用户通过本地网络或互联网访问您的应用程序时,客户端运行的机器与服务器不同。
服务器-客户端对应用程序设计的影响
在构建您的 Streamlit 应用程序时,请务必考虑以下几点:
运行或托管您的 Streamlit 应用程序的计算机负责为所有用户提供运行应用程序所需的计算能力和存储空间,并且其规模必须适当以处理并发用户。
您的应用程序无法访问用户的文件、目录或操作系统。您的应用程序只能与用户通过诸如
st.file_uploader这样的小部件上传到您的应用程序的特定文件一起工作。如果您的应用程序与任何外围设备(如摄像头)进行通信,您必须使用 Streamlit 命令或自定义组件,这些组件将通过用户的浏览器访问这些设备,并在客户端(前端)和服务器(后端)之间正确进行通信。
如果您的应用程序打开或使用 Python 之外的任何程序或进程,它们将在服务器上运行。例如,您可能希望使用
webrowser为用户打开一个浏览器,但在通过网络查看您的应用程序时,这将无法按预期工作;它将在 Streamlit 服务器上打开浏览器,而用户无法看到。
理解 Streamlit 的客户端-服务器架构的更多相关文章
- MySQL1:客户端/服务器架构
一.MySQL的客户端/服务器架构 前言 之前对MySQL的认知只限于会写些SQL,本篇算是笔记,记录和整理下自己对MySQL不熟悉的地方. 大致逻辑: MySQL的服务器程序直接和我们存储的数据打交 ...
- [网络编程之客户端/服务器架构,互联网通信协议,TCP协议]
[网络编程之客户端/服务器架构,互联网通信协议,TCP协议] 引子 网络编程 客户端/服务器架构 互联网通信协议 互联网的本质就是一系列的网络协议 OSI七层协议 tcp/ip五层模型 客户端/服务器 ...
- 无服务器架构(Faas/Serverless)
摘要无服务器架构(Faas/Serverless),是软件架构领域的热门话题. AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serv ...
- 高性能高并发服务器架构设计探究——以flamigo服务器代码为例
这篇文章我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序. 所谓高性能就是服务器能流畅地处理各个客户端的连接并尽量低延迟地应答客户端的请求:所谓高并发,指的是服务器可以同时 ...
- 同一世界服务器架构--Erlang游戏服务器
Erlang最大的优点是方便,很多基础功能都已经集成到Erlang语言中.之前用C++写服务器的时候,管理TCP连接很繁琐,需要写一大堆代码来实现.底层的框架需要写很多代码实现,这样既浪费时间 ...
- Serverless无服务器架构详解
本文对Serverless架构的基础概念.具体产品.应用场景.工作原理进行详细解析. 基础概念 Serverless: 无服务器架构,即在无需管理服务器等底层资源的情况下完成应用的开发和运行,是云原生 ...
- 【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)
Web Service技术是一种通过Web协议提供服务,保证不同平台的应用服务可以互操作,为客户端程序提供不同的服务. 目前3种主流的Web Service实现方案用:REST,SOAP和XML-RP ...
- [转]MMORPG服务器架构
MMORPG服务器架构 一.摘要 1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构2.网络游戏网络层,包括网络协议,IO模型,网络框架,消息编码等.3.网络游戏的场景管理,A ...
- 高扩展的基于NIO的服务器架构
当你考虑写一个扩展性良好的基于Java的服务器时,相信你会毫不犹豫地使用Java的NIO包.为了确保你的服务器能够健壮.稳定地运行,你可能会花大量的时间阅读博客和教程来了解线程同步的NIO selec ...
- Windows平台网站图片服务器架构的演进[转]
构建在Windows平台之上的网站,往往会被业内众多架构师认为很“保守”.很大部分原因,是由于微软技术体系的封闭和部分技术人员的短视造成 的.由于长期缺乏开源支持,所以只能“闭门造车”,这样很容易形成 ...
随机推荐
- 解决chrome浏览器拓展插件颜色变成透明无法使用。
虚拟机装了chrome之后插件变成了透明的,没办法使用了. 解决办法如下: 1.卸载VMWARE tools 2.地址栏输入: chrome://flags 找到 "Choose ANGLE ...
- 通过SpringBoot配置文件配置Druid数据源
目录 引入坐标依赖 配置application.properties文件 新建一个controller观察使用的是哪一个数据源 在SpringBoot 1.X 中,spring-boot-starte ...
- N+1查询:数据库性能的隐形杀手与终极拯救指南
title: N+1查询:数据库性能的隐形杀手与终极拯救指南 date: 2025/05/06 00:16:30 updated: 2025/05/06 00:16:30 author: cmdrag ...
- Valgrind内存调试和性能分析工具使用教程
Valgrind 是一款 内存调试和性能分析工具,主要功能: 内存泄漏检测: 检测程序中的内存泄漏,即分配的内存没有被正确释放. 内存错误检测: 检测 未初始化的内存读取.越界访问.释放后访问 等内存 ...
- 鸿蒙 NEXT (一)初识鸿蒙
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- DeepSeek+Coze实战:从0到1搭建小红书图文改写智能体(喂饭级教程)
大家好,我是汤师爷,专注AI智能体分享~ 还在为小红书笔记创作发愁吗? 每天都要绞尽脑汁想文案,看着别人的爆款笔记却不知道如何模仿? 今天,我就教你如何利用AI智能体,轻松实现小红书图文改写,让创作效 ...
- django-channels如何向组内特定成员推送信息的解决方案
测试版本: python 3.8 djnago 3.2 channels 3.0 需求 向channels的小组内某(些)个特定成员推送信息,而不是向组内所有人员群发 实现原理 websocket 三 ...
- 保姆式Win11安装教程|Rufus工具制作U盘+绕过限制+驱动安装全解析(附资源包)
Windows 11 简介 Windows 11是微软推出的全新一代操作系统,以直观交互和AI技术为核心升级.其界面采用圆角设计和居中任务栏布局,支持多窗口贴靠分屏与虚拟桌面功能,提升多任务处理效率. ...
- CSP-S 2020全国开放赛前冲刺模拟训练题1信友队集训队员周镇东出题 小结
题目&官方题解下载 我的题解 CSP-S 2020模拟训练题1-信友队T1 四平方和 CSP-S 2020模拟训练题1-信友队T2 挑战NPC 我仍未看懂那天所看到的T3的题解 CSP-S 2 ...
- WEB DYNPRO程序找文本
ABAP里代码扫描就是用的SOURCE SCAN. WEB DYNPRO里有个单独的 事务代码SE24进入,执行类CL_WDY_WB_NAMING_SERVICE的方法GET_CLASSNAME_FO ...