PyScript 核心特性
Python in the browser:启用 drop-in content、外部文件托管(基于 Pyodide 项目),以及不依赖服务器端配置的应用程序托管。
Python 生态:提供流行的 Python 和科学计算软件包(例如 numpy, pandas, scikit-learn 等)。
Python with JavaScript:在 Python 和 JavaScript 对象和命名空间之间进行双向通信。
环境管理:开发者可定义要引入哪些包和文件,以便页面代码的运行。
可视化应用开发:开发者可使用现成的 UI 组件,如按钮、容器、文本框等。
灵活的框架:开发者可以利用它在 Python 中直接创建和分享新的可插拔和可扩展的组件。
PyScript 目标
提供干净简单的 API。
支持标准 HTML。
扩展 HTML 以读取稳定且可靠的自定义组件。
提供可插拔、可扩展的组件系统。
CDN
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
基础用法
<py-script>
print('Hello PyScript!')
</py-script>
复杂一点
<py-script>
import datetime as dt
pyscript.write('today', dt.date.today().strftime('%A %B %d, %Y'))
def compute_pi(n):
pi = 2
for i in range(1,n):
pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
return pi
pi = compute_pi(100000)
pyscript.write('pi', f'π is approximately {pi:.3f}')
</py-script>
引用第三方库(head标签中引用)
<py-env>
- numpy
- matplotlib
</py-env>

</py-script>
<py-script>
import datetime as dt
pyscript.write('today', dt.date.today().strftime('%A %B %d, %Y'))
def compute_pi(n):
pi = 2
for i in range(1,n):
pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
return pi
pi = compute_pi(100000)
pyscript.write('pi', f'π is approximately {pi:.3f}')
</py-script>
<py-script>
import matplotlib.pyplot as plt
import numpy as np
x=np.random.randn(100)
y=np.random.randn(100)
fig, ax=plt.subplots()
ax.scatter(x, y)#散点图
ax.set_title("demo")
pyscript.write("plot",fig)
</py-script>
<py-script>
x=[1, 2, 3, 4]
y=[1, 4, 9, 16]
fig, ax=plt.subplots()
ax.plot(x, y)#折线图
ax.set_title("line-chart")
pyscript.write("plot2",fig)
</py-script>
</body>
</html>

总结
现阶段,运行带有 PyScript 的页面加载速度特别慢,像一下子回到了原始年代。
目前阶段,只能尝试新鲜感,知道这么个东西,项目中最好还是不要使用。
项目现在还在完善阶段,许多功能还没有支持,但是从github热度和参与贡献的人数来看,前途还是可以的。
59

被折叠的 条评论
为什么被折叠?



