国外课栈 - 国外电子信息技术视角栈

Python交互式Web应用程序【浅阅篇】

 二维码 17
文章附图

您是否曾经想过只用几行Python代码创建一个Web应用程序?   Streamlit允许您执行此操作,但是并没有提供很多选项来自定义输入框,输出,布局和页面。

如果您正在寻找比Django和Flask更容易学习但比Streamlit更可定制的东西,那么您会喜欢PyWebIO。

什么是PyWebIO?

PyWebIO是一个Python库,可让您在不了解HTML和Javascript的情况下构建简单的Web应用程序。   PyWebIO也可以轻松地集成到现有的Web服务中,例如Flask或Django。

要安装PyWebIO,请输入

pip install -U pywebio

开始使用

输入

PyWebIO提供了多种选项来获取用户的输入。 下面的GIF显示了其中一些选项的外观。

1-Python交互式Web应用程序.gif

输出

PyWebIO还提供了多种输出选项。 在此处查看完整的输出列表。 让我们看看其中一些输出选项的外观。

ezgif.com-gif-maker (4).gif

在上面的代码中,我们使用:

  • put_markdown编写markdown

  • put_text创建纯文本

  • put_table创建菜单表

  • select创建一个下拉栏

  • put_image输出食物图像

  • put_file输出链接以下载文件

我们可以用几行代码创建一个如此有趣的应用程序。 多么酷啊!

让我们运用到目前为止所学到的知识来创建:

  • 提供给定文本的生成PDF的简单应用

  • 一个为我们上传的CSV文件生成精美,高密度可视化效果的应用程序

创建一个应用程序以生成PDF

我们将创建一个简单的应用程序,以生成给定文本的PDF,如下所示:

3-Python交互式Web应用程序.gif

让我们从为应用程序创建输入框和输出开始。

上面的代码说明:

  • input:创建一个文本输入框。

  • textarea:创建一个多行文本输入框。

  • 占位符:向用户建议可以在输入框中输入的内容

  • required:指定是否需要输入

  • start_server:启动服务器以将PyWebIO应用程序作为Web服务提供。   debug = True告诉服务器在代码更改时自动重新加载。

我们应该看到类似下面的内容:

4-Python交互式Web应用程序.png

转到http://0.0.0.0:36535/播放该应用程序。 现在,我们有了一个简单的Web应用程序,其中包含如下所示的输入框!

5-Python交互式Web应用程序.gif

好的! 现在我们知道了如何创建输入框并输出,让我们写下将为输入文本生成PDF的代码。 我们将使用PyFPDF做到这一点。

输入所有信息后,名为output.pdf的文件将保存到当前目录。 如果您输入的文本是“ Hello”,您将看到类似下面的内容!

现在,我们涵盖了我们应用程序的基础知识。 让我们添加更多功能,使用户更容易使用。

添加一组按钮

组下拉列表和数字输入

创建一个应用程序以为上传的CSV文件生成漂亮的可视化效果

本文代码

附录:深入探索

  • PyWebIO数据可视化图形库实现

    • 散景图(bokeh)

    • plotly

      • 基础图表

        • 折线图

        • 条形图

        • 饼状图

        • 气泡图

        • 点图

        • 填充区域图

        • 水平条形图

        • 甘特图

        • 朝阳图

        • 图表

        • 桑基图

        • 树状图


      • 统计图

        • 错误条

        • 箱形图

        • 直方图

        • Displots

        • 2D直方图

        • 散点图矩阵

        • 刻面和格子图

        • 平面类别图

        • 小提琴图

        • 2D直方图轮廓


      • 科学图表

        • 等高线图

        • 热图

        • 三元图

        • 对数图

        • 树状图

        • 带注释的热图

        • 三元叠加图

        • 平行坐标图

        • 颤动图

        • 简化图

        • 网络图

        • 地毯图

        • 地毯轮廓图

        • 极坐标图

        • 雷达图

        • 三元轮廓

        • 风玫瑰和极地条形图


      • 财务图表

        • 时间序列和日期轴

        • 烛台图

        • 瀑布图

        • 漏斗图

        • OHLC图表

        • 指示图

        • 量规表

        • 子弹图


      • 地图

        • Mapbox Choropleth地图

        • Mapbox上的线

        • 地图上的填充区域

        • 气泡图

        • Mapbox密度热图

        • 地图上的线

        • 霍罗珀斯地图

        • Mapbox地图图层

        • 地图上的散点图

        • 地图配置和样式


      • 3D图表

        • 3D轴

        • 3D散点图

        • 3D表面图

        • 3D子图

        • 3D相机控件

        • 3D气泡图

        • 3D线图

        • 3D表面着色

        • 3D网格图

        • 3D圆锥图

        • 3D Streamtube图


      • 子图

        • 混合子图

        • 地图子图

        • 表格和图表子图

        • 图工厂 子图


      • 动画


    • Echarts的图表

    • G2Plot的图表

    • 手绘图样式表


  • 使用PyWebIO和Flask部署机器学习


文章分类: 编程碎语Python