第一章:PyWebIO表单快速构建概述
PyWebIO 是一个轻量级 Python 库,旨在让开发者无需前端知识即可快速创建交互式 Web 界面。它特别适用于数据科学、教学演示或内部工具开发等场景,能够以极简代码实现表单输入、结果展示和用户交互。
核心特性
- 无前端依赖:完全使用 Python 编写逻辑,无需 HTML、JavaScript 或 CSS
- 同步编程模型:代码按顺序执行,避免回调地狱
- 多种输入输出组件:支持文本框、下拉选择、文件上传等常见表单元素
基础表单示例
以下代码展示如何创建一个包含姓名和年龄输入的简单表单:
from pywebio.input import input, select
from pywebio.output import put_text
from pywebio import start_server
def user_form():
# 获取用户输入
name = input("请输入您的姓名")
age = select("请选择您的年龄段", ["18岁以下", "18-30岁", "31-50岁", "50岁以上"])
# 输出欢迎信息
put_text(f"欢迎你,{name}!您属于 {age} 群体。")
# 启动本地 Web 服务
start_server(user_form, port=8080)
上述代码定义了一个表单处理函数,并通过内置服务器启动 Web 页面。用户在浏览器访问
http://localhost:8080 即可填写表单。
常用输入类型对照表
| 输入类型 | 用途说明 | 对应函数 |
|---|
| 单行文本 | 获取用户名、标题等内容 | input() |
| 多选框 | 多项选择(如兴趣爱好) | checkbox() |
| 文件上传 | 接收用户上传的文件 | file_upload() |
graph TD
A[开始] --> B[调用input函数]
B --> C{用户提交?}
C -->|是| D[获取数据并处理]
C -->|否| B
D --> E[输出结果]
第二章:PyWebIO核心表单函数详解
2.1 input() 函数:实现文本与数值输入的实践应用
基础输入机制
Python 中的
input() 函数用于从标准输入读取用户输入的内容,返回值为字符串类型。无论用户输入何种内容,初始结果均为字符串,需通过类型转换处理数值。
name = input("请输入您的姓名:")
print(f"欢迎你,{name}!")
该代码实现基本的交互式文本输入,
input() 的参数为提示信息,提升用户体验。
数值输入的处理
若需获取数值,必须结合
int() 或
float() 进行类型转换。
age = int(input("请输入年龄:"))
height = float(input("请输入身高(米):"))
此处将输入字符串转换为整型与浮点型,支持后续数学运算。若输入非数字字符,将引发
ValueError,需配合异常处理增强健壮性。
2.2 select() 函数:构建单选与下拉选项的交互逻辑
在前端开发中,`select()` 函数常用于处理用户从预定义选项中进行单选或选择多个值的交互行为。它不仅适用于 HTML `
` 元素的值获取,还可结合事件监听实现动态响应。
基本用法与事件绑定
通过监听 `change` 事件触发 `select()` 相关逻辑,可实时获取用户选择项:
document.getElementById('mySelect').addEventListener('change', function() {
const selectedValue = this.value;
console.log('选中的值:', selectedValue);
});
上述代码中,`this.value` 返回当前选中 `