终于,纯Python 也可以写前端了,干货干货
off999 2024-10-19 07:10 48 浏览 0 评论
自己这两天也在搞 阿里云服务器 0 元购 的活动,其中有个环节是核验读者的购买资格。
此次参加的读者有几百个,一个一个核验肯定是不现实的,于是就想着搞一个前端页面让读者可以自己查询,虽然自己也会点前端,也写过 vue ,但让我按照标准的框架和流程去搞,总感觉太重了。
刚好昨天通过 早起同学 的一篇文章了解到,原来现在 Python 也可以 "写" 前端了,临时应付一下我这种简单的需求,太适合不过了,于是花了半个小时的时间熟悉了下,很快就搞了个 查询界面,开发效率太高了,效果如下:
接下来回归主题,转一下早起同学的文章,介绍一下 pywebio 的入门操作,大家可以学一手以备后用。
# 1. 安装与基本流程
安装 PyWebIO 和其他的第三方库一样使用pip install PyWebIO就行,没有任何难度,此处不做多讲。
但是在正式讲解一些常见的操作之前,我需要解释一下,为什么说用 PyWebIO 写页面就像数据分析一样。
回想一下我们使用Python进行数据分析的流程,启动 Jupyter Notebook 导入数据,进行数据预览、筛选、拆分合并等操作,得到自己满意的结果,最后保存方便查看,更重要的是一行代码一个结果,方便调试。
而使用 PyWebIO 开发页面流程也是类似,我们不用过分关心CSS、JS等文件,全程我们只需要操作一个py脚本。
也不用关心数据库配置、前后端交互,就像上面的数据分析一样,创建一个空白页面,然后一行代码添加一部分内容,内容可以实时编译输出,甚至可以在 ipython 中进行开发
与其说是第一个第三方库,我更愿意称它为一个 APP ,因为一行代码对应一个操作,例如可以调用 put_text() 、 put_image() 、 put_table() 等函数输出文本、图片、表格等内容到浏览器!
当然,之所以能这么便捷高效的开发页面,基于别人封装好的,高度精准定义好的功能,因此使用场景十分有限,例如问卷调查、表单填写、数据报告展示等简单的、个人使用的,且对样式、特效等不做太高要求的场景。
关于它让人不爽的地方,我会在后面的系列文章中进行讲解,这不影响它确实是一个高效率的web开发库,下面让我对其常见操作进行讲解。
# 2. 来!现在就开发页面!
本节我将介绍使用 PyWebIO 开发页面中的一些常见操作。
当然,我深知阅读文档的枯燥与痛苦,所以我将以从 0 实现下面的页面为最终目标进行讲解!
插入文字
平时我们写 html 会用类似<h1>标签来控制标题,用<p>``<span>这样的标签来输出文字。
在 PyWebIO 中可以使用 markdown 来实现类似效果,语法是put_markdown(),将markdown添加进去,就会自动渲染
put_markdown(("""# 我的第一个页面
这是早起Python教我用Python写的第一个页面!
写点什么呢?到底写一点什么好呢?好像真的没什么好写的,到底写什么呢?
我也不知道该写点什么, 反正有点什么内容就好了!"""), lstrip=True)
效果如下
插入图片
静态元素是一个网页的重要组成部分,使用 PyWebIO 插入也是很简单,使用 put_image() 可以插入图片,代码如下
put_image(open('iShot2021-10-29 17.14.08.png', 'rb').read())
随手用手机拍了一张图片,效果如下
插入表格
传统html使用table插入表格,这里使用类似方法
put_table([
['商品', '价格'],
['苹果', '5.5'],
['香蕉', '7'],
])
效果如下,后面如果表格内容需要变化,可以写个函数让他动态更新
插入代码
插入代码也是没有问题的
展示效果如下
交互 - 收集信息
上面都是常规的静态元素添加,其他一些库也能做到,甚至手写原生html都行,下面来点更高级的!
首先是简单的交互式输入框,开发者已经写好了,调用命令也很简单
name = input("你的名字是什么??")
只用一行代码,效果如下,当然这也意味着样式什么的不支持修改
这里我们选择将接收到消息打印出来,当然也是可以写一个函数,将数据进行保存,这会在后面带大家开发问卷系统讲到
交互 - 隐藏输入
如果我们在开发问卷系统,有些选项希望用户输入时可以隐藏输入,就像输入密码一样
password = input("不想让别人看见你的输入?", type=PASSWORD)
交互 - 输入代码
通过交互输入框接收代码也是可以的,后面我讲介绍如何让代码执行,下面是可以实现的样式
code = textarea('Code Edit', code={
'mode': "python", # code language
'theme': 'darcula', # Codemirror theme
}, value='import something\n# Write your python code')
交互 - 按钮功能
其实上面说的存储数据也好,执行代码也好,本质上就是给这个提交按钮添加一个功能,我们来实现最简单的计算器。也就是点击提交,计算两数相加
data = input_group("做个计算器", [
input('第一个数字', name='num1', type=NUMBER),
input('第二个数字', name='num2', type=NUMBER)
])
put_text(f"计算结果是{data['num1']} + {data['num2']} = {data['num1'] + data['num2']} ")
因为简单,连函数都不用定义,直接 f-string 就解决了,如果需要复杂的功能,就可以定义一个函数,点击按钮就执行这个函数
如何渲染页面
从上面的介绍不难看出,用 PyWebIO 就好比往一张白纸里面塞东西。
但我还没说,如何创建一张白纸以及如何渲染页面,下面是一个本文用的最简单的框架
from pywebio import *
from pywebio.input import *
from pywebio.output import *
def myfirstpage():
something
if __name__ == '__main__':
start_server(myfirstpage,port=8082,auto_open_webbrowser=True)
可以看到,我们只要定义一个函数,然后往里面塞各种内容,最后通过start_server()指定端口启动就行。
好了,以上就是 pywebio 的简单使用,可以覆盖绝大多数的临时页面开发需求,对于经常有这方面需求可以先学习一波。
相关推荐
- 显卡天梯图3050ti(显卡天梯图快科技)
-
RTX3050Ti的最新跑分达到了71803。根据Geekbench的信息,RTX3050Ti搭载20组CU,也就是2560个CUDA核心,GPU频率为1.49GH...
- office完整版下载(office2019完整版下载)
-
word是office软件中的一部份,完全的安装了office软件就等于安装了word。安装具体步骤如下:1、搜索,下载Office安装包。2、下载完成后,将Office安装包解压。选中Offic...
- qq邮箱网页登陆(qq邮箱网页登陆提示安全风险要验证码)
-
qq邮箱的登录方法:1登录QQ后,正常情况下头像旁边有一个邮箱图标,点击直接登录QQ邮箱2如果没有在主面板上显示的话,可以点击界面管理器添加3在界面管理的右侧,找到QQ邮箱并设置为选状态这样就可直接从...
- 360软件管家有必要安装吗
-
360电脑管家这类软件属于安全软件,其作用是用来防病毒木马。有无安装必要主要看你的电脑使用习惯。比如有的电脑不联网,而且不插外来U盘,这样的电脑几乎与外界隔离,就没有必要安装安全软件。再比如有的电脑经...
- 如何桥接无线路由器并设置上网
-
1、登录副路由器管理界面操作电脑连接到副路由器的LAN口或无线信号(默认为TP-LINK_XXXX),打开浏览器,清空地址栏并输入tplogin.cn或192.168.1.1,设置不少于6位数的登录密...
- 电脑配置搭配(电脑配置搭配表)
-
电脑配置搭配需要考虑多个组件,包括CPU、主板、显卡、内存、硬盘、电源以及散热器等。以下是一些建议和指南:CPU选择:CPU是电脑的心脏,决定了电脑的整体性能。选择CPU时需要考虑核心数、主频、线程数...
- windows7安装步骤简述(win7的安装)
-
运行温度时期的电脑怎么组装?官方已经给出了相关配置:处理器(cpu)最好是主频1GHZ以上,32位或64位处理器,不过目前的处理器几乎都是64位的了,一般双核处理器都在1GHZ以上。 也就是说目前绝...
- 电脑删除的数据怎么恢复(电脑删除数据怎么恢复原状)
-
步骤一:打开电脑上已经装好的Superrecovery软件,直接进入到“向导模式”。首先,大家需要做的就是选择文件所在的位置,例如:需要恢复的数据是在移动存储设备上(如:U盘、SD卡等),直接选择设备...
- 删除数据恢复(删除数据恢复出厂设置)
-
1.在手机上下载手机数据恢复精灵,进入软件之后,选择微信恢复。2.点击开始恢复,选择需要恢复的联系人,等待一会儿,就能看到恢复好的聊天记录。3.可以安装打开互盾安卓恢复大师,手机数据线连接手机后,点击...
- 复制粘贴不了怎么解决(电脑不能复制粘贴了怎么处理)
-
1、查看手机输入法的剪贴板选项,是否有复制的文本,如果有就直接点击就可以直接输入了。2、复制后,长按不出来粘贴键的时候,需要把应用程序关闭掉重新开,重新复制粘贴,或者尝试重启手机。3、可以尝试重新复制...
- u盘被写保护去除步骤(u盘的被写保护怎么解除)
-
U盘被写保护通常是因为存储器故障、病毒感染、文件系统损坏等原因导致的,但可以通过以下几种方法进行解除:1.检查U盘开关:一些U盘可能会有物理上的写保护开关,将其关闭即可解除写保护。2.使用命令行清...
- 电脑蓝屏怎么用u盘重装系统(电脑蓝屏重装系统教程u盘)
-
U盘装系统步骤:1.制作U盘启动盘。这里推荐U启动U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...
-
- erp管理软件(erp管理软件免费版)
-
用友的ERP应该说从3万-3000都有ERP的价格随着企业的规模不同,价格也是不一样的。因为企业规模不同产生的效果也是不一样的,所以用友的产品分T1/T3/T6/U8/U9/NC3万小企业做个财务业务一体化还是勉强可以做的。只...
-
2025-11-11 09:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
