在浏览器用Python取代JavaScript,Brython 3.2.3 发布,
jopen 9年前
Brython 设计用于替换网页上的 JavaScript 脚本语言,它使用 Python 来编写脚本,并直接在网页上执行。
Brython 3.2.3 发布,此版本改进了运行 CPython 套件 (tests/unittests/index.html) 的页面,最初是由 Billy Earney 编写的。此页面提供一个系统的方法来在 Python 编译时检测 bugs。
另一个重要改进是更好的实现了 execution frames。
下载:Brython3.2.3-20151122-082712.tar.gz。
Brython 的说明:
Brython的目标是用Python取代JavaScript,使Python成为web浏览器的脚本语言。
Brython - 在浏览器用 Python 取代 JavaScript
此项目载入一个 js 文件, 然后就可以用 Python 语法来操作 DOM、AJAX... 等等的事情. (写在 <script type="text/python">
里面)
- 项目首页: Brython - browser python
- Google code: brython - Browser Python
Brython 使用方式(范例)
说明文件: Brython document,
下述范例取自此篇:
<html> <head> <script src="/brython.js"></script> </head> <body onLoad="brython()"> <script type="text/python"> def echo(): alert(doc["zone"].value) </script> <input id="zone"><button onclick="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 写法范例
<script type='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 codepy_dom.js
: interaction with the HTML document (DOM)py_ajax.js
: Ajax implementationpy_local_storage.js
: implementation of the HTML5 local storagepy_svg.py
: SVG support (vector graphics)