已发布新版本的“用于浏览器的Python”,符合Brython 3.9



Brython Python代码(截屏版本3.8.8)



Brython Python项目的开发人员发布了新版本Brython 3.9。该项目本身被定位为“浏览器的Python”。它基于Python 3并在浏览器端运行,使用Python代替JavaScript来开发Web脚本。



项目代码是用Python编写的,并根据BSD许可进行分发。新版本与Python 3.9兼容,并且标准库已更新。



为了使用Python而不是JS定义客户端站点的逻辑,Web开发人员需要包括两个库brython.js和brython_stdlib.js。为了在页面上包含Python代码,使用了MIME类型为text / python脚本标签 从Brython方面,既可以将代码嵌入到页面中,也可以加载外部脚本。例:







<script type="text/python" src="test.py">


脚本提供了对DOM元素和事件的完全访问权限。除了访问Python标准库外,还有一些专门的库可用于DOM和JavaScript库,例如jQuery,D3,Highcharts和Raphael。



它支持jQuery,D3,Highcharts和Raphael之类的JavaScript库使用CSS框架。



Python代码块是通过代码预编译脚本代码块执行的,代码预编译在页面加载后由Brython引擎执行。编译通过调用brython()函数开始,例如通过追加body onload="brython()"



基于Python代码,形成JS表示,然后由浏览器的标准JavaScript引擎执行。



在性能方面,嵌入在网页中的Python脚本中的大多数操作都与Cpython的性能接近。唯一的延迟发生是在编译阶段。但是可以通过预编译的JavaScript代码消除延迟,该代码用于加快标准库的加载。



<script type="text/python">
 
import time
import math
 
from browser import document
import browser.timer
 
content = document["content"]
 
...
 
canvas = content.select_one(".clock")
 
if hasattr(canvas, 'getContext'):
    ctx = canvas.getContext("2d")
 
    browser.timer.set_interval(set_clock, 100)
    show_hours()
else:
    content.select_one('.navig_zone').html = "canvas is not supported"
 
</script>


有关运行Brython的更多信息



为了使“浏览器的Python”能够翻译和执行JS代码之类的Python代码,您需要在加载文档正文时调用Brython。



<body onload="brython()">


在这种情况下,标记会查找text / python类型的脚本标记并运行代码。为了使用API​​与网络配合使用,Brython开发人员实施了一个简单的解决方案-导入API,类似于在Python中导入任何其他模块:



from browser import document, html, window


Brython可以自行处理所有内容,因此您无需运行其他命令。



重要一点-使用Brython,您需要至少具有基本水平的JavaScript经验。没有这个,将很难解决。






All Articles