Brython 在浏览器用Python取代JavaScript

简介: 看到的一个有趣的 Open Source 项目(Brython), 虽然我觉得没什么实用性~ XD不过, 既然是蛇年, 就让 浏览器 也 蛇化 吧~

看到的一个有趣的 Open Source 项目(Brython), 虽然我觉得没什么实用性~ XD

不过, 既然是蛇年, 就让 浏览器 也 蛇化 吧~

image.png

Brython 的说明:

Brython的目标是用Python取代JavaScript,使Python成为web浏览器的脚本语言。


Brython - 在浏览器用 Python 取代 JavaScript

此项目载入一个 js 文件, 然后就可以用 Python 语法来操作 DOM、AJAX... 等等的事情. (写在 <script type="text/python">里面)


Brython 使用方式(范例)

说明文件: Brython document,

下述范例取自此篇:

<html>

<head>

<scriptsrc="/brython.js"></script>

</head>

<bodyonLoad="brython()">

<scripttype="text/python">

def echo():

   alert(doc["zone"].value)

</script>

<inputid="zone"><buttononclick="echo()">clic !</button>

</body>

</html>


Brython Syntax 笔记

Brython Syntax 说明: Brython Syntax


建立 a link

link1 = A('Brython', href='http://www.brython.info')

link2 = A(B('Python'), href='http://www.python.org')

建立 a 并 附加属性

link = A()

link <= B('connexion')

link.href = 'http://example.com'


AJAX

req = ajax()

req.on_complete = on_complete

req.set_timeout(timeout, err_msg)

req.open('POST', url, True)

req.set_header('content-type', 'application/x-www-form-urlencoded')

req.send(data)

Local storage

local_storage['foo'] = 'bar'

log(local_storage['foo'])

del local_storage['foo']

log(local_storage['foo']) # prints None


text/python 写法范例

<scripttype='text/python'> def mouse_move(ev): doc["trace"].value = '%s %s' %(ev.x,ev.y)

doc["zone"].onmousemove = mouse_move

</script>


Brython 相关 Library (库)

库的套件可见: Brython - Compiling and running

这边有很多必须的 Library, 在这边列一些应用类的.

  • py2js.js : does the conversion between the tokens and the Javascript code
  • py_dom.js : interaction with the HTML document (DOM)
  • py_ajax.js : Ajax implementation
  • py_local_storage.js : implementation of the HTML5 local storage
  • py_svg.py : SVG support (vector graphics)


相关文章
|
1月前
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
109 48
|
1月前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
1月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
40 1
|
1月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
313 9
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
143 1
|
1月前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
47 4
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
171 0
|
2月前
|
JavaScript 前端开发 开发者
JavaScript 浏览器控制台的使用
JavaScript 浏览器控制台的使用
33 0