Python 竟也可以写网页前端了

article/2025/10/8 19:53:24

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 — Brython

好用吗?咱今天来试试用它写一个计算器:

不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?

1. 特点

1. 可轻易地在页面中内嵌 Python 终端进行测试

2. 运行速度接近于 CPyhon

3. 写法方便,社区强大,可进行敏捷开发

如果 Python 和 JS 你都写过,那大概率会觉得相同的功能,用 Python 写起来比 JS 更方便。

4.和 JS 一样,你不用安装任何东西就可以开始编写

下面就用Brython做一些简单的实验吧。

2. 实验

0. 安装

与通常的 Python 库一样,可以通过 pip install brython 进行安装。

然后在一个空目录下执行:

python -m brython --install

1. 在页面上显示 Hello !

<!doctype html><html><head><meta charset="utf-8"><script type="text/javascript"src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js"></script></head><body onload="brython()"><script type="text/python">from browser import documentdocument <= "Hello !"</script></body></html>


将这份代码保存为index.html,双击在浏览器中打开,即可看到Hello !字样:

原理:

代码的 head 中,引入了一个 Brython 引擎附带的 brython.min.js 模块,用于使用 Python 控制页面。

而在 <script type="text/python"> 和 </script> 之间就是相应的 Python 代码。

可以看到,想在 document 中显示文本,只需要直接输入:

document <= "你所需要显示的文本"

后续你将会看到用 Brython 使用标准化的 DOM 语法和页面交互的例子。

2. 用 HTML 标签来做文本格式化:

如果要加粗文本:

from browser import document, htmldocument <= html.B("Hello !")

部分加粗、部分不加粗:​​​​​​​

from browser import document, htmldocument <= html.B("Hello, ") + "world !"

i 标签:

document <= html.UL(html.LI(i) for i in range(5))

超链接:

document <= html.A("Python实用宝典", href="https://pythondict.com")

以上例子如下:

<!doctype html><html><head><meta charset="utf-8"><script type="text/javascript"src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js"></script></head><body onload="brython()"><script type="text/python">from browser import document, htmldocument <= html.B("Hello !")document <= html.UL(html.LI(i) for i in range(5))document <= html.A("Python实用宝典", href="https://pythondict.com")</script></body></html>

效果:

 

3. 写一个简单的计算器

先写好简单的图形架构,用th和tr标签即可:

from browser import document, htmlcalc = html.TABLE()calc <= html.TR(html.TH(html.DIV("0", id="result"), colspan=3) +                html.TH("C", id="clear"))lines = ["789/",        "456*",        "123-",        "0.=+"]calc <= (html.TR(html.TD(x) for x in line) for line in lines)document <= calc

然后加上一些 CSS 样式就可以把这个简单的图形架构变漂亮了:

<style>*{font-family: sans-serif;font-weight: normal;font-size: 1.1em;}td{background-color: #ccc;padding: 10px 30px 10px 30px;border-radius: 0.2em;text-align: center;cursor: default;}#result{border-color: #000;border-width: 1px;border-style: solid;padding: 10px 30px 10px 30px;text-align: right;}</style>

最后只需要做运算符的事件触发器即可,从下面这行代码:

calc <= (html.TR(html.TD(x) for x in line) for line in lines)

可以看出,所有的按钮都被创建为 td 标签,因此我们要获得所有这些按钮是否被点击,仅需要:​​​​​​​

for button in document.select("td"):    button.bind("click", action)

意思是,按钮被点击后便执行 action 操作,action 操作定义如下:

def action(event):    """Handles the "click" event on a button of the calculator."""    # The element the user clicked on is the attribute "target" of the    # event object    element = event.target    # The text printed on the button is the element's "text" attribute    value = element.text        if value not in "=C":        # update the result zone        if result.text in ["0", "error"]:            result.text = value        else:            result.text = result.text + value                elif value == "C":        # reset        result.text = "0"            elif value == "=":        # execute the formula in result zone        try:            result.text = eval(result.text)        except:            result.text = "error"

如果不是 = 号或 C 号,则进行 字符串拼接

如果是 C 号,则清空 result。

如果是 = 号,则需要计算出结果,直接对字符串用 eval() 函数 即可完成目的。

这边是全部核心代码了,写起来真的极其方便。

你可以访问如下地址体验这个 Python 写的计算器:

https://pythondict.com/calculator.html

完整源码:
https://pan.baidu.com/s/1d4ndpN1Lpzb6fpgqKJ7acQ 

提取码:v36f

【python学习】
学Python的伙伴,欢迎加入新的交流【君羊】:1020465983
一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料


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

相关文章

用Python写了一个前端,轻轻松松实现前端梦

前端除了用jscsshtml&#xff0c;还有没有其它办法&#xff1f;其实python也可以 1. 安装与基本流程 Python学习交流Q群&#xff1a;906715085### 安装 PyWebIO 和其他的第三方库一样使用pip install PyWebIO就行&#xff0c;没有任何难度&#xff0c;此处不做多讲。但是在正式…

Pyscript,使用Python编写前端脚本

介绍 Anaconda的CEO Peter Wang在前两个月的时候发布了Pyscript&#xff0c;实现了在HTML支持Python的使用&#xff0c;整个引用过程甚至不需要安装任何环境&#xff0c;只需要使用link和script标签即可引用实现Python在HTML中运行的功能&#xff0c;在HTML中也可以运行和使用…

python前端界面实现交互,python的交互模式是什么

如何进入python交互界面 Python交互模式有两种&#xff1a;图形化的交互模式或者命令行的交互模式。打开步骤&#xff1a;首先点击开始菜单。 然后在搜索栏中输入Python&#xff0c;即可看到图形化的交互模式&#xff08;IDLE&#xff08;Python 3.7 64-bit&#xff09;&…

前端运行python代码几种方式_前端和python

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如果您细心对比过 json python sdk 和 xml python sdk 的文档,您会发现并不是一个简单的增量更新。 xml python sdk 在架构、可用性和安全性上有了非常大的提升…

逆袭之路——python 前端开发之基础部分【day38】

今日内容概要 前端简介HTTP简介HTTP协议HTML简介head内常见标签body内基本标签body内特殊符号body内常见标签标签的两大重要参数列表标签表格标签 今日内容详细 一、前端简介 什么是前端 什么是后端&#xff1f; 前端&#xff1a; 任何与用户直接打交道的界面都可以…

用Python写前端

分享一个让开发交互式 Web app 超级简单的工具。不会 HTML&#xff0c;CSS&#xff0c;JAVASCRIPT 也没事。交互式 Web app 非常实用&#xff0c;比如说做一个问卷调查页面、一个投票系统、一个信息收集表单&#xff0c;上传文件等等&#xff0c;因为网页是可视化的&#xff0c…

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;实现了系统的模块…