在浏览器用Python取代JavaScript,Brython 3.2.3 发布,

jopen 8年前

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 使用方式(范例)

说明文件: 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 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)