Brython可以替代javascript在使用python来编写浏览器脚本。
brpython的目标是用Python取代Javascript,作为Web浏览器的脚本语言。
我们先看一个示例代码
<!DOCTYPE html>你会惊奇的发现竟然输入了helloworld
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World</title>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/brython.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/brython_stdlib.js"></script>
</head>
<bodyBfwOnload="brython()">
<script type="text/python">
from browser import document
document <= "Hello World!"
</script>
</body>
</html>
再来个弹窗
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World</title>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/brython.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/brython_stdlib.js"></script>
</head>
<bodyBfwOnload="brython()">
<script type="text/python">
import browser
browser.alert("Hello Real Python!")
</script>
</body>
</html>
其他场景用法:
建立 a linklink1 = 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
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)
网友回复
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?
js在浏览器中如何使用MediaStream与MediaRecorder实现声音音频多轨道混流?