Python 竟然也可以写网页前端了!

前端开发的Python学习笔记 快速开始 经过上述流程,已经安装好了Python环境,并且尝试了第一行代码,使用命令行和VSCode都做了运行。但是现在的一个问题就是,依赖会被迫安装到全局,这会影响项目的独立性,难以管理。解决这个问题的方案,后续文章《Python虚拟环境》将会解决这个问题。 阅读详情
AI摘要

本文介绍Brython,一种基于Python3的前端开发工具,旨在替代JavaScript。文章通过实例展示如何使用Brython创建网页元素、格式化文本及实现页面交互,包括一个完整的计算器应用,展示了其在客户端Web编程的便捷性和高效性。

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 document
document <= "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, html
document <= html.B("Hello !")

部分加粗、部分不加粗:

from browser import document, html
document <= 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, html
document <= 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, html
calc = 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

作者:Ckend 

来源:Python实用宝典



每个程序员都是从菜鸟开始成长起来的,没有人一开始就是程序员高手。菜鸟爱编程,专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手。
菜鸟编程大本营
长按2秒,输入:【福利】点这里,进菜鸟学PythonB站大本营
Python:一种用于前端还是后端编程的多功能语言 在前端开发中,我们使用了 requests 库来获取数据并进行处理,而在后端开发中,我们使用了 Flask 框架来构建一个简单的 API,并从数据库中获取数据。Web 开发:Python 提供了多个流行的 Web 框架,如 Django 和 Flask,可以用于构建功能强大的 Web 应用程序。综上所述,Python 是一种非常灵活和多功能的编程语言,在前端和后端开发中都有广泛的应用。网络爬虫:Python 提供了强大的库和框架,如 BeautifulSoup 和 Scrapy,可以用于从网页中提取数据。 阅读详情

相关推荐

高速DAC时钟与配置实战:DAC5681Z硬件设计与寄存器编程详解

在高速数据转换系统中,时钟信号是决定系统性能的核心要素,其稳定性和纯净度直接影响数模转换器(DAC)的输出频谱纯度与动态范围。时钟电路的设计原理涉及信号完整性、阻抗匹配与直流偏置,而内部锁相环(PLL)和延迟锁相环(DLL)的配置则是实现精确时序控制的关键技术。这些技术的价值在于,它们共同保障了高速通信、雷达和任意波形生成等应用对信号实时性与精度的严苛要求。本文聚焦于德州仪器(TI)的DAC5681Z,深入解析其外部时钟输入电路的硬件设计要点,包括端接电阻的计算与选型,并详细拆解通过串行外设接口(SPI)对

weixin_30342363的博客 186

用Python写前端是什么体验?

PyScript是一个框架,允许用户在浏览器中使用HTML的界面和Pyodide、WASM以及现代网络技术的力量来创建丰富的Python应用程序。PyScript框架为各种经验水平的用户提供了使用一种具有无数应用的、易于学习的编程语言的机会。多才多艺的Python学研君不禁感叹,Python真是太万能了,现在除了用来用来写后端、爬虫、AI/ML,竟然也可以写前端了😱!赶快翻开它的官网(这差不多就是说,再加上Python有丰富的库和可访问的生态系统,PyScript的功能强大多了!

python122_的博客 3056

一份针对零基础学习AI Agent详细学习计划

以下是针对零基础学习者制定的AI Agent详细学习计划,结合最新行业动态和实用资源推荐,帮助你从入门到进阶系统掌握核心技能

sexy19910923的博客 1904

Python开发之一(前端开发之HTML、CSS、Bootstap、Javascript、JQuery)

文章目录一、Flask网页开发1.1创建一个名为web1.py的python文件1.2 templates目录创建文件index.html二、html标签2.1 编码2.2title < head >2.3 标题< h>2.4 div和span2.5超链接1.在index.xml文件中补充。2.修改web1.py文件3.添加get_self.html4.效果2.6图片1.格式2.图片大小3.本地图片的存放效果小结标签嵌套:创建商品列表效果图2.7列表2.7.1无序列表2.7.2有序列

qq_46345319的博客 6365

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 248

保姆级教程:在LKD3588开发板上为RK3588添加SC2210摄像头驱动(含完整DTS配置)

本文提供了一份详细的教程,指导如何在LKD3588开发板上为RK3588处理器添加SC2210摄像头驱动,包括完整的DTS配置和内核编译步骤。教程涵盖了环境准备、驱动文件添加、DTS配置详解、内核编译与烧录、驱动测试以及常见问题排查,帮助开发者快速实现SC2210传感器在RK3588平台上的集成与优化。

weixin_42641741的博客 479

[学习笔记]python的web开发全家桶1-前端

源学习视频 目的:开发一个平台(网站) 前端开发:HTML、CSS、JavaScript Web框架:接收请求并处理 MySQL数据库:存储数据地方 快速上手: 基于Flask Web框架让你快速搭建一个网站出来。 深入学习: 基于Django框架(主要) 1.快速开发网站 from flask import Flask app = Flask(__name__) # 创建了网站/show/info和函数index的对应关系 # 以后用户在浏览器上访问/show/info,网站自动执行index

zhangyifeng_1995的博客 5366

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1616

eclipse可以写前端吗_Python 竟然也可以写网页前端了!

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython好用吗?咱今天来试试用它写一个计算器:不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?1. 特点1. 可轻易地在页面中内嵌 Python 终端进行测试2. 运行速度接近于 CPyhon3. 写法方便,社区...

weixin_39873191的博客 485

【软考高级架构】论文范文12——论生成式AI在软件开发中的应用与挑战

随着生成式AI技术的跨越式发展,以大语言模型为代表的生成式AI正在深刻改变软件开发的传统模式。在代码生成、测试构造、文档编写等环节,生成式AI展现出显著的效率提升潜力,但其应用也面临着代码质量不可控、安全漏洞植入、版权合规等严峻挑战。本文以笔者主导的某大型金融企业智能研发辅助平台建设项目为案例,围绕生成式AI在软件开发中的应用实践与应对挑战的策略展开论述。笔者担任系统架构师,负责平台架构设计、模型选型、质量保障机制及安全防线构建。

qq837993702的博客 275

2025年华为杯中国研究生数学建模竞赛A题 通用神经网络处理器下的核内调度问题 思路+代码

针对通用神经网络处理器下的核内调度问题,我们提出了一套基于分层优化框架的系统性解决方案。该方案首先通过缓存敏感的启发式拓扑排序算法生成最小峰值缓存占用的调度序列,在满足计算图依赖关系的前提下优先选择能够释放或减少缓存占用的节点;随后采用最佳适应算法进行精细化的缓存分配,结合LRU换出策略动态管理多级缓存空间,最小化额外数据搬运量;最后引入多目标遗传算法进行联合优化,在严格控制数据搬运量不显著增加的前提下,通过关键路径分析、流水线并行和数据预取等技术进一步优化总执行时间。

YOLO 785

python能做网页前端吗_Python 竟然也可以写网页前端了!

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython好用吗?咱今天来试试用它写一个计算器: 不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?1. 特点1. 可轻易地在页面中内嵌 Python 终端进行测试 2. 运行速度接近于 CPyhon3. 写法方便,...

weixin_39821189的博客 593

在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统

智能建筑能效优化是现代建筑管理的重要组成部分,旨在通过智能化手段降低能源消耗、减少碳排放并提高居住舒适性。通过Simulink进行智能建筑能效优化仿真,可以验证控制策略的有效性、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的智能建筑能效优化仿真。该系统能够模拟复杂的建筑环境,验证能效优化策略的有效性,并通过优化设计提高建筑的能源利用效率和居住舒适性。

xiaoheshang_123的博客 138

python可以写前端吗_Python 竟然也可以写网页前端了!

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython好用吗?咱今天来试试用它写一个计算器:不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?1. 特点1. 可轻易地在页面中内嵌 Python 终端进行测试2. 运行速度接近于 CPyhon3. 写法方便,社区...

weixin_39835117的博客 349

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

html写计算器_Python 竟然也可以写网页前端了!

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython好用吗?咱今天来试试用它写一个计算器:不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?1. 特点1. 可轻易地在页面中内嵌 Python 终端进行测试2. 运行速度接近于 CPyhon3. 写法方便,社区...

weixin_36420089的博客 425

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python的前端怎么实现_Python 竟然也可以写网页前端了!

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython好用吗?咱今天来试试用它写一个计算器:不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?1. 特点1. 可轻易地在页面中内嵌 Python 终端进行测试2. 运行速度接近于 CPyhon3. 写法方便,社区...

weixin_39751195的博客 381

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

js可以两个标签一起bind吗_Python 竟然也可以写网页前端了!

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 — Brython好用吗?咱今天来试试用它写一个计算器:不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?1. 特点1. 可轻易地在页面中内嵌 Python 终端进行测试2. 运行速度接近于 CPyhon3. 写法方便,社...

weixin_39713538的博客 70

python写网页前端交易rsa加密_Flask框架实现的前端RSA加密与后端Python解密功能详解!...

本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能。分享给大家供大家参考,具体如下:前言在使用 Flask 开发用户登录API的时候,我之前都是明文传输 username 和 password。这种传输方式有一定的安全隐患,password 可能会在传输过程中被窃听而造成用户密码的泄漏。那么我认为解决该问题的方法是这样的:在前端页面对数据进行加密,然后再发送到后端进行处理。...

weixin_39725873的博客 305

再见HTML ! 用纯Python就能写一个漂亮的网页

我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互:要懂后端,比如Python里面的Django或者Flask,或者是Java里面的...

cainiao_python的博客 2万+

用纯Python就能写一个漂亮的网页

我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互: 要懂后端,比如Python里面的Django或者Flask,或者是Java里面的SpringBoot 要懂前端,现在都叫大前端了(因为很复杂),比如前端的框架Vue/React, 然后页面的美化框架Bootstrap ,还有html ,csss 和Javascript 三驾马车. 天啊,听听头都大呢!其实我就给老板做一个简单的交互的页面,而且我只会Python ,有没有很简单的办法可以做.

Python免费教程 6万+

终于,Python 也可以写前端了

前端除了用js++css+html,还有没有其它办法?其实python也可以 #1. 安装与基本流程 安装PyWebIO和其他的第三方库一样使用pip install PyWebIO就行,没有任何难度,此处不做多讲。 但是在正式讲解一些常见的操作之前,我需要解释一下,为什么说用PyWebIO写页面就像数据分析一样。 回想一下我们使用Python进行数据分析的流程,启动Jupyter Notebook导入数据,进行数据预览、筛选、拆分合并等操作,得到自己满意的结果,最后保存方便查看,更重...

Yuki1127918的博客 2万+

Python 竟也可以写网页前端了

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython 好用吗?咱今天来试试用它写一个计算器: 不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢? 1. 特点 1. 可轻易地在页面中内嵌 Python 终端进行测试 2. 运行速度接近于 CPyhon 3. 写法方便,社区强大,可进行敏捷开发 如果 Python 和 JS 你都写过,那大概率会.

SixStar_FL的博客 4373
上一篇: 微软发布 VS Code Python 插件 7 月更新
下一篇: 最新!薪酬最高的大学专业公布!
菜鸟学Python
博客等级 码龄9年 8042粉丝 571原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值