pyscript的用法

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>

![在这里插入图片描述](https://img-blog.csdnimg.cn/b9b31c55d56547f2af7258db0ecce2a4.png

完整例子

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
    <title>pyscript</title>
    <py-env>
        - numpy
        - matplotlib
    </py-env>
</head>

<body>
    <b><p>Today is <u><label id='today'></label></u></p></b>
    <br>
    <div id="pi" class="alert alert-primary"></div>
    <div id="plot"></div>
    <div id="plot2"></div>
    <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>
    <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热度和参与贡献的人数来看,前途还是可以的。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新时代_打工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值