---
description: Python | 交互式
---

# Python交互式Web应用程序

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

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

**什么是PyWebIO？**

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

要安装PyWebIO，请输入

```bash
pip install -U pywebio
```

**开始使用**

**输入**

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

**输出**

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

在上面的代码中，我们使用：

* put\_markdown编写markdown
* put\_text创建纯文本
* put\_table创建菜单表
* select创建一个下拉栏
* put\_image输出食物图像
* put\_file输出链接以下载文件

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

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

* 提供给定文本的生成PDF的简单应用
* 一个为我们上传的CSV文件生成精美，高密度可视化效果的应用程序

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

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

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

上面的代码说明：

* input：创建一个文本输入框。
* textarea：创建一个多行文本输入框。
* 占位符：向用户建议可以在输入框中输入的内容
* required：指定是否需要输入
* start\_server：启动服务器以将PyWebIO应用程序作为Web服务提供。 debug = True告诉服务器在代码更改时自动重新加载。

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

**本文代码**

**附录：深入探索**

* 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部署机器学习

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
