何利用streamlit快速搭建一个web应用并部署到heroku服务器上

2023-11-08


streamlit是一个用于构建机器学习、数据可视化的python框架。如果你想快速部署自己的机器学习应用,或者给小伙伴直观展示你的数据,但是没有web开发的经验,streamlit绝对是你的不二选择。只要你会使用python,你会发现利用streamlit开发一个web app是一件及其简单的事情。Streamlit是第一个专门针对机器学习和数据科学团队的应用开发框架,它是开发自定义机器学习工具的最快的方法,它的目标是取代Flask在机器学习项目中的地位,可以帮助机器学习工程师快速开发用户交互工具。他只需要几行代码就可以轻松实现机器学习模型的可视化,代码多位设置控件类型和输入、输出,可以帮你轻松设计自己训练好的机器学习模型webapp。缺点是控件位置固定,格式比较单一,还有待进一步包的更新和发展。但绝对是没有web搭建应用基础的初学者必备利器。

streamlit入门(所有的都一样安装包)

pip install streamlit

尝试包的示例

streamlit hello

如果成功安装,会出现如下窗口,并且默认的浏览器会启动。
在这里插入图片描述
在这里插入图片描述

这样你就可以通过选择左侧框框内的示例模型进行初次尝试了,示例中都附带了这个model的代码,能帮你快速理解:控件布局,数据读入、输出,界面设计等方面,助力快速入门。
当然最好的还是去浏览其官方文档:link
里面详尽了各种控件、布局样式和API接口。大家可以通过很多途径了解到各个控件怎么部署,这里就不详细描述了。

如何快速搭建你的webApp:

1.首先在本地创建一个 .py文件,例如我的app.py

app.py
导入所有需要的包,包括全部自己模型内的包,我这里用SVM创建了一下简单的分类器作为示例

2设置题目

在这里插入图片描述

3设置控件:

在这里插入图片描述

st.sidebar.slider:表示在左侧新建一个滑动条一样的控件,效果见下图:
在这里插入图片描述

st.sidebar.selectbox:表示左侧新建一个选择框:
在这里插入图片描述

4 训练模型

这一步跟你在任何python编辑器上一样,读入数据、建立模型即可,我这里直接导入之前训练好的模型
在这里插入图片描述

5从webApp中收集用户输入的信息,并打包成矩阵,输入自己已经建立好的模型:

在这里插入图片描述

6写出自己模型的结果即可:

在这里插入图片描述
这样很容易通过简单的几行代码就实现了一个基于svm的诊断模型的webApp创建,可能用不到你几分钟,就完成了一个十分复杂,涉及到诸多框架、程序语言的webApp设计。到这里你就完成了第一个app的创建。
下面有了APP我怎么跟别人分享,难道都只能在本地端观看吗?

部署

创建好的APP,理论上可以部署到任意的服务器上,让用户实现访问,这里就介绍用heroku平台,没有别的原因,就是因为它是免费的平台,你可以不需要信用卡,就可以完成部署。
天下没有免费的午餐,它也有着明确的缺点,没有科学上网,没有heroku!

注册一个账号:

不能用qq邮箱、网易邮箱等,最好还是尝试国外邮箱,我用的是google,完全没有问题。
创建一个App
在这里插入图片描述

通过Heroku Git上传你的APP

你可以完全按照下图中的代码一步步实现把自己的APP部署到Heroku上,当然前提是准备好的App,下面我将讲述需要哪些辅助的文件帮助你部署。
在这里插入图片描述
在这里插入图片描述这是我的文件
在这里插入图片描述

.git是后面生成的不用管,svm.joblib是我保存的自己建立的模型也不需要管,主要包括你的main.py、 Procflie 、requirements、setup.sh。
Procflie没有文件类型,后面保存的时候不需要加后缀,只需要把我写的app改成你的程序名称即可
在这里插入图片描述
Requirements
在这里插入图片描述
就是你写模型所以依赖的包环境
setup.sh
输入你的邮箱即可
在这里插入图片描述
把这些所有文件都放在一个文件夹内
最后通过heroku部署
运行cmd,cd到你的文件夹,按照下面的代码一步步就可以成功部署你的APP了
在这里插入图片描述
最后成功部署后:点击open APP就可以在网页上操作自己的应用了,复制链接分享给别人,就可以在世界的任何一个角落,通过网络访问你的APP了。

小结:

streamlit优缺点
streamlit的优点很明显:
开发速度快,修改方便。非常适合个人开发者
不必需要web方面知识也可以开发出可用的web app,这也是最吸引人的地方
streamlit也有一些缺点:
前端界面固定,开发者不能随意调整控件位置
社区现在还不够完善,也有一些bug暂时没有解决
总的来说,streamlit绝对是一款值得学习的框架;也许你的领域并不是机器学习、数据分析领
域,但是从另一个方面想,streamlit提供了丰富的控件以及简单的开发流程,完全可以使用
streamlit结合其他python库开发一些有趣的web app解决自身领域的一些小困难。
多尝试,多试错!

参考:

玉树兰芝:如何用 Python 和 Streamlit 做交互式数据分析产品?https://sspai.com/post/58474
streamlit:快速构建机器学习数据分析web app利器https://zhuanlan.zhihu.com/p/110816628?from_voters_page=true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何利用streamlit快速搭建一个web应用并部署到heroku服务器上 的相关文章

随机推荐

  • 解决ModuleNotFoundError: No module named ‘pip‘

    pip install U pip 把pip搞没了 报错 环境路径 Scripts pip script py is not present 这个错误可以通过两行简单的cmd命令行语句进行改正修复 python m ensurepip py
  • GAN(生成对抗网络)Matlab代码详解

    这篇博客主要是对GAN网络的代码进行一个详细的讲解 首先是预定义 clear clc clc是清除当前command区域的命令 表示清空 看着舒服些 而clear用于清空环境变量 两者是不同的 装载数据集 train x load Norm
  • access数据库—— 偏移注入&移位溢注&逐字猜解

    目录 前言 正文 0x01 access数据库介绍 0x02 Access union注入 1 猜表 2 猜字段 查数据 0x02 Access 逐字猜解注入 1 猜表 2 猜字段 3 判断长度 4 查询数据 0x03 Access 偏移注
  • File.renameTo()无效-解决

    File renameTo 在windows下运行正常 可正常移动文件 但在linux下就失败了 代码运行正常 但文件没有移动 这种情况下可以使用Files move代替 import java nio file 重命名文件 new Fil
  • vue-cli3实现mockjs数据模拟

    方法一 安装mockjs npm install mockjs save 在src文件夹先新建mock文件夹用于存放json数据 在vue config js文件中做配置 const mockdata require src mock ba
  • 跟着代码随想录练算法 —— 动态规划(JS)

    跟着代码随想录练算法 动态规划 62 不同路径 https leetcode cn problems unique paths 63 不同路径 II https leetcode cn problems unique paths ii 96
  • SQLSTATE=08S01通讯连接失败

    导致此错误的原因是连接池已经耗尽 所以在连接数据库时要记得关闭连接 防止连接用完
  • php swoole 请求tcp服务的两种方式

    第一种方式 可以实现在代码中调用 task connection stream socket client tcp 127 0 0 1 8721 errno errstr task data array route gt demo test
  • x390拆机 升级内存和硬盘_扩容提速必看!笔记本内存和硬盘如何升级?

    在 想给笔记本清灰升级 先了解下如何拆机吧 一文中我们介绍了笔记本的拆机思路以及注意事项 当你可以自行拆下底盖并看到主板之后 就可以进一步对内存和硬盘这两个存储单元进行替换升级了 内存的升级思路 并不是所有笔记本都能升级内存 很多主打便携的
  • 利用服务器搭建自己的 ngrok服务实现内网穿透

    介绍 ngrok 是一个反向代理 通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道 通过 ngrok 服务我们可以在本地调试微信的接口 调试微信和支付宝的支付回调或者临时搭建一个通道用于在外网访问本地部署的项目 准备 一台
  • idea下实现tomcat热部署(修改class等不重启项目)

    在我们的日常开发过程中 常常会涉及到修改class等文件时 需要重启项目 这不仅耗时 而且还耽误我们的进度 实际上 我们用idea时 可以用tomcat实现热部署而无需重启项目 具体设置如下 此处我用的tomcat版本为tomcat8 5
  • BSC 测试链配置

    全流程步骤 安装 MetaMask 钱包 在 MetaMask 钱包中配置 BSC 测试链 向测试链钱包注入测试 BNB USDT DOGE Remix 编写代码 正式发币 1 安装 MetaMask 钱包 下载地址 https metam
  • 二维数组的各种翻转

    一 二维数组正对角线翻转 int length matrix size 按对角交换数字 for int i 1 i lt length i for int j 0 j lt i j swap matrix i j matrix j i 镜像
  • 字节对齐详解

    字节对齐主要是针对结构体而言的 通常编译器会自动对其成员变量进行对齐 以提高数据存取的效率 字节对齐有两种方式 默认对齐方式 指定对齐方式 默认对齐方式 默认对齐方式内存分配满足以下三个条件 结构体第一个成员的地址和结构体的首地址相同 结构
  • 2021年第四届清洁能源与智能电网国际会议(CCESG 2021)EI检索

    2021年第四届清洁能源与智能电网国际会议 CCESG 2021 重要信息 会议网址 www ccesg org 会议时间 2021年9月3 5日 召开地点 匈牙利布达佩斯 截稿时间 2021年8月20日 录用通知 投稿后2周内 收录检索
  • IDEA 关闭/开启引用提示Usages

    版本高一些的IDEA都会有这样变量或者方法都会有这个Usages提示 它会提示你在哪被使用了 个人觉得还是挺好用的 比如下图 通过点击可以看到在哪被使用 包括一些接口 被谁实现 然后今天我发现没有这个使用提示了 正好听到有人反馈说这个提示不
  • Flutter iOS 权限申请的采坑之旅

    Flutter项目集成了权限请求框架 permission handler 在Android端的权限请求没什么问题 iOS端安装之后 跳转到应用设置后找不到相应的权限 权限声明 应用设置页面 我还以为跟Android端的权限一样 声明了这边
  • MongoDB数据库在Linux 上的下载安装

    MongoDB下载包获取 mongoDB官网下载地址 选择不同的版本 系统以及安装包类型 本次教程选择以下版本 下载后文件类型为tgz文件 wget 直接下载 wget https fastdl mongodb org linux mong
  • SQLserver数据库中的基本数据类型

    整数类 1 bigint 完全等于Java中的long 2 int 完全等于java中的int 3 smallint 完全等于Java中的short 4 tinyint 它相当于Java中的byte类型 但表示的数值范围不同 byte 12
  • 何利用streamlit快速搭建一个web应用并部署到heroku服务器上

    如何利用streamlit快速搭建一个web应用并部署到heroku服务器上 streamlit入门 所有的都一样安装包 尝试包的示例 如何快速搭建你的webApp 1 首先在本地创建一个 py文件 例如我的app py 2设置题目 3设置