用Python写前端

article/2025/10/8 20:00:57

分享一个让开发交互式 Web app 超级简单的工具。不会 HTML,CSS,JAVASCRIPT 也没事。交互式 Web app 非常实用,比如说做一个问卷调查页面、一个投票系统、一个信息收集表单,上传文件等等,因为网页是可视化的,因此还可以作为一个没有服务端的图片界面应用程序而使用。

如果你有这样的开发需求,那用 Python 真的是太简单了。

借助于 PyWebIO(pip install pywebio),你可以分分钟实现网页的信息录入,可以看下面的动图:

 上面的页面,也就仅仅用了这 6 行代码:

from pywebio.input import *input("This is a simple text input")
select("This is a drop down menu", ['Option1', 'Option2'])
checkbox("Multiple Choices!", options=["a",'b','c','d'])
radio("Select any one", options=['1', '2', '3'])
textarea('Text Area', rows=3, placeholder='Multiple line text input')

要让网页输出想要的信息也是非常简单,代码如下,函数功能已经做了相关注释,你很容易看懂:

from pywebio.output import *
from pywebio import session# 网页上显示纯文本
put_text("Hello friend!")# 网页上显示表格
put_table([['Object', 'Unit'],['A', '55'],['B', '73'],
])# 网页上显示 MarkDown
put_markdown('~~PyWebIO~~')# 网页上显示下载文件的链接
put_file('output_file.txt', b'You can put anything here')# 网页上显示图片
put_image(open('python_logo.png', 'rb').read())# 网页上显示弹窗
popup('popup title', 'popup text content')# 保持回话是打开状态,否则页面显示完毕程序退出
session.hold()

                                                       

                          构建基于浏览器的 GUI 程序

PyWebIO 提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富文本终端”,可以用于构建简单的 Web 应用或基于浏览器的 GUI 应用。

比如计算 BMI 指数的脚本:

from pywebio import start_server
from pywebio.input import input, FLOAT
from pywebio.output import put_textdef bmi():height = input("请输入你的身高(cm):", type=FLOAT)weight = input("请输入你的体重(kg):", type=FLOAT)BMI = weight / (height / 100) ** 2top_status = [(14.9, '极瘦'), (18.4, '偏瘦'),(22.9, '正常'), (27.5, '过重'),(40.0, '肥胖'), (float('inf'), '非常肥胖')]for top, status in top_status:if BMI <= top:put_text('你的 BMI 值: %.1f,身体状态:%s' % (BMI, status))breakif __name__ == '__main__':start_server(bmi, port=80)

效果:

 

更多示例:

基本 demo

  • 聊天室[1]: 和当前所有在线的人聊天 (不到 90 行代码实现)

  • Markdown 实时预览[2]: 可以实时预览的在线 Markdown 编辑器 (不到 40 行代码实现)

  • 在线五子棋游戏[3]: 多人协作对战的五子棋游戏 (不到 100 行代码实现)

  • 输入演示[4]: 演示 PyWebIO 输入模块的用法

  • 输出演示[5]: 演示 PyWebIO 输出模块的用法

数据可视化 demo

PyWebIO 还支持使用第三方库进行数据可视化

  • 使用 bokeh 进行数据可视化[6]

  • 使用 plotly 进行数据可视化[7]

  • 使用 pyecharts 创建基于 Echarts 的图表[8]

  • 使用 pyg2plot 创建基于 G2Plot 的图表[9]

  • 使用 cutecharts.py 创建卡通风格图表[10]

                                                与现有框架集成

PyWebIO 还可以方便地整合进现有的 Web 服务,让你不需要编写 HTML 和 JS 代码,就可以构建出具有良好可用性的应用。目前支持与 Flask、Django、Tornado、aiohttp、FastAPI 框架集成。

比如说与 Tornado 应用整合:

import tornado.ioloop
import tornado.web
from pywebio.platform.tornado import webio_handlerclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("Hello, world")if __name__ == "__main__":application = tornado.web.Application([(r"/", MainHandler),(r"/bmi", webio_handler(bmi)),  # bmi 即为上文计算BMI指数的函数])application.listen(port=80, address='localhost')tornado.ioloop.IOLoop.current().start()

与 Django 整合:

from django.urls import path
from pywebio.platform.django import webio_view# `task_func` is PyWebIO task function
webio_view_func = webio_view(task_func)urlpatterns = [path(r"tool", webio_view_func),
]

与更多框架的整合见文档[11]

最后

PyWebIO 使用同步而不是基于回调的方式获取输入,代码编写逻辑更自然,非声明式布局,布局方式简单高效,代码侵入性小,旧脚本代码仅需修改输入输出逻辑便可改造为 Web 服务,还可以整合到现有的主流 Web 框架。同时支持基于线程的执行模型和基于协程的执行模型,支持结合第三方库实现数据可视化,更多知识请阅读官方文档[12]

一句话,PyWebIO 让交互式的 Web 开发变得更加简单,特别适合开发简单的 GUI 程序及数据可视化。

参考资料

[1]        聊天室

[2]        Markdown 实时预览

[3]        在线五子棋游戏

[4]        输入演示

[5]        输出演示

[6]        使用 bokeh 进行数据可视化

[7]        使用 plotly 进行数据可视化

[8]        使用 pyecharts 创建基于 Echarts 的图表

[9]        使用 pyg2plot 创建基于 G2Plot 的图表

[10]       使用 cutecharts.py 创建卡通风格图表

[11]        文档

[12]        官方文档


http://chatgpt.dhexx.cn/article/m3kDORGO.shtml

相关文章

jsp物流配送管理系统

jsp物流配送管理 emmmm 本系统带程序说明书 有需要的可以去我上传的资源里面找&#xff0c;找不到的话&#xff0c;评论我&#xff0c;或者站内私信留下邮箱&#xff0c; 我看到机会给你发&#xff0c;也可以主动联系我博客名。 因为最近太忙一直没有上传完。我会尽快传完…

中小企业物流配送管理系统SSM开发MYSQL数据库javaweb项目j2ee实现

本项目使用IDEA JavaBean Servlet MVC和MYSQL开发,需要eclipse SSM SpringSpringMVCMyBatis或SQL server数据库的请联系QQ1978519681 1 数据库概念设计 2 功能 功能包含:货物种类 货物信息管理 入库 出库 库存盘点 车辆管理 物流配送管理 客户管理 员工管理 3 效果演示

基于SSH的物流配送信息管理平台设计与实现

目 录 1 引言 3 1.1 目的 3 1.2 背景 3 1.3 参考资料 3 1.4 术语 3 2 任务概述 4 2.1 目标 4 3 需求规定 4 3.1 一般性需求 4 3.2 功能性需求 4 6、 中心库房管理员&#xff1a;存放公司所配送的货物&#xff0c;是公司货物的入口。 4 3.2.2 整体业务流程描述 5 1、 客服接收客…

物流管理系统需要的服务器,物流业务管理系统

erp系统物流门店收银方案概述 连锁门店在国内的兴起,服务好,品牌一致,在工作效率上已经不能靠从前的记账方式。现成于条码技术,可以解决现在管理中快速的定位,集中处理,少出错等问题。采用GPRS无线网络,可以解决各个分店到总部的数据远程实时传输。便于集中统一管理,货…

物流配送管理系统(ssm,mysql)

可以实现数据的图形展示、报表展示、报表的导出、打印。 1、仓储数据分析: 将2018年12月1日青岛仓出库量与 1、 仓储主题 仓库分为冷冻仓和冷藏仓,仓库地点至少三个,一个地点有多个冷冻仓和冷藏仓。时间为日、月、季度、年。商品为具体的生鲜产品。仓库设置仓库维度、时间…

【附源码】计算机毕业设计SSM物流配送系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

快递配送管理系统毕业设计

技术&#xff1a;Java、JSP等 摘要&#xff1a;本快递配送管理系统是使用JSP编程语言和SQL Server2008数据库共同来完成的&#xff0c;采用面向对象方法&#xff0c;对快递配送管理系统进行设计与实现。分析设计了快递配送管理系统的静态模型和动态模型&#xff0c;完成了系统开…

基于C语言Win32API窗口实现的物流配送信息管理系统

一、题目 物流配送管理信息系统 二、系统功能模块结构图 2.1 函数程序模块结构图如图 1 所示&#xff1a; 图 1 2.2 录入子菜单功能结构图如图 2 所示&#xff1a; 图 2 2.3 插入的子菜单的功能结构图如图 3 所示&#xff1a; 图 3 2.4 修改的子菜单的功能结构图如图 4 所…

【附源码】计算机毕业设计SSM物流配送中心管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

python基于PHP+MySQL的物流配送管理系统平台

随着时代的发展,物流显得越来越重要。尤其是在网购这样的大环境冲击之下基本上物流已经充满了我们生活的每一个角落。尽管如此,但是对于那种大型的货物和车辆,仍然没有一个很好的信息共享平台。经常会出现出主找不到货源,货主找不到车源的情况。车主和货主之间形成了严重的信息…

基于PHP+MySQL的物流配送管理系统平台

随着时代的发展,物流显得越来越重要。尤其是在网购这样的大环境冲击之下基本上物流已经充满了我们生活的每一个角落。尽管如此,但是对于那种大型的货物和车辆,仍然没有一个很好的信息共享平台。经常会出现出主找不到货源,货主找不到车源的情况。车主和货主之间形成了严重的信息…

物流 计算机管理 好处,物流配送管理系统的好处与可行性分析

原标题&#xff1a;物流配送管理系统的好处与可行性分析 物流配送是物流业的基本职能之一。它在物流活动中具有重要的地位和作用。它反映了物流的最终效果。选择正确的配送路线不仅可以提高配送效率&#xff0c;还可以更好地为客户服务。提供贴心的送货服务。 使用物流配送系统…

物流配送信息管理系统java_基于jsp的物流配送管理系统-JavaEE实现物流配送管理系统 - java项目源码...

基于jspservletpojomysql实现一个javaee/javaweb的物流配送管理系统, 该项目可用各类java课程设计大作业中, 物流配送管理系统的系统架构分为前后台两部分, 最终实现在线上进行物流配送管理系统各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类物流配送管…

基于Springboot+Vue+ElementUI物流配送管理系统

程序开发软件&#xff1a; Eclipse/Idea Vscode Mysql Redis 采用技术&#xff1a; Springboot Vue ElementUI 本系统实现一个物流管理系统。具体功能描述如下&#xff1a; 1.系统其它信息管理&#xff1a;主要是针对系统的其他的信息进行管理&#xff0c;实现了系统的模块…

java物流管理系统代码_Java物流配送管理系统 Spring 源码下载

生鲜配送管理系统功能概要 l 系统整体流程图 l 订单管理 流程描述 功能描述 订单来源主要有微信商城、网站商城、客服录入、餐桌计划的自动下单。 订单主要分回馈类订单、正常订单。回馈类订单又有卡、券之分&#xff0c;正常订单有预付款、卡(固定搭配&#xff0c;自由搭配)…

JAVAWeb物流快递管理系统

把JAVA作为开发语言&#xff0c;sql作为数据库&#xff0c;按照软件工程的方法开发物流管理系统。系统主要分为功能模块和管理模块&#xff0c;其中功能模块主要包括登录、退出、登录密码修改&#xff1b;管理模块包括系统用户管理、客户信息管理、货物信息管理、接货单管理、车…

基于JavaWeb的物流管理系统的设计与实现

源码下载 http://www.byamd.xyz/hui-zong-1/摘 要 物流作为中国经济发展迅速的代表行业之一&#xff0c;在当今时代&#xff0c;它在我们身边无处不在&#xff0c;我们几乎可以随时随地看到它们的身影&#xff0c;为什么我们能在网上买的东西能在几天时间里送到我们手中&…

计算机毕业设计 Java web物流配送管理系统

文章目录 0 项目说明1 项目各文件介绍2 项目运行准备工作3 项目目录结构介绍4 效果图展示5 项目源码 0 项目说明 基于Java web的物流配送管理系统 提示&#xff1a;适合用于课程设计或毕业设计&#xff0c;工作量达标&#xff0c;源码开放 项目分享&#xff1a; https://gi…

物流公司货运配送管理系统设计

物流公司货运配送管理系统要求基于B/S架构&#xff0c;开发出一个对硬件要求相对较低&#xff0c;功能全面能实现物流管理人员日常工作&#xff0c;操作简单方便&#xff0c;易上手&#xff0c;使用流畅&#xff0c;可扩展性强的应用管理系统。主要有角色管理&#xff0c;配货管…

【springboot中jasypt-spring-boot-starter的使用】

目录 1. 简介2. 引入依赖3. 自定义加解密的方式4. 获取密文5. 编写配置文件6. 验证结果 1. 简介 在项目开发的过程中&#xff0c;经常会需要在配置文件中存储一些敏感的信息&#xff0c;如数据库的账号密码&#xff0c;支付相关信息&#xff0c;密钥等等&#xff0c;这些信息在…