brython介绍
Brython的目标是用Python取代Javascript,作为Web浏览器的脚本语言。
一个简单的例子:
<html>
<head>
<script src="/brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
from browser import document, alert
# 给按钮绑定事件‘click’到方法‘echo’上
def echo(ev):
alert(document["zone"].value)
document["mybutton"].bind("click", echo)
</script>
<input id="zone">
<button id="mybutton">click !</button>
</body>
</html>
为了处理Python脚本,必须包含 brython.js并brython()在页面加载时运行该函数(使用标记的onload属性<BODY>)。
在开发阶段,可以将参数传递给brython()函数:
- 1将错误消息显示到Web浏览器控制台,
- 2也可以显示与错误一起显示的Javascript代码。
如果Python程序很大,另一个选择是将它写在一个单独的文件中,并使用脚本标记的src属性加载它:
<html>
<head>
<script src =“/ brython.js”> </ script>
</head>
<body onload =“brython()”>
<script type =“text / python”src =“test.py”> </ script>
<input id =“zone”autocomplete =“off”>
<button id =“mybutton”> click!</ button>
</body>
</html>
请注意,在这种情况下,Python脚本将通过Ajax调用加载:它必须与HTML页面位于同一个域中。
在上面两个代码示例中,当我们单击按钮时,onclick事件会调用并运行echo()在Python脚本中定义的函数。此函数通过其id(区域)获取INPUT元素的值。
这是通过以下语法实现的document["zone"]:document在模块浏览器中定义,是表示当前在浏览器中显示的文档的对象。它的行为类似于字典,其键是DOM元素的ID。因此,在我们的示例中, document["zone"]是一个映射到INPUT元素的对象; 该值 属性保存,有趣的是,对象的值。
在Brython中,输出可以通过各种方式完成,包括使用函数alert()(也在浏览器中定义),该函数显示弹出窗口,文本作为参数传递。
项目地址:https://github.com/brython-dev/brython