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>pyscripttitle>
    <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的用法_第1张图片

总结

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

你可能感兴趣的:(python,python,开发语言,前端框架)