关于java:PyScript让Python在HTML中运行

9次阅读

共计 2195 个字符,预计需要花费 6 分钟才能阅读完成。

大家好,我是 DD,曾经是关闭在家的第 51 天了!

最近始终在更新 Java 新个性和 IDEA Tips 两个专栏,其余方向内容的动静关注少了。昨天天早晨刷推的时候,瞄到了这个神奇的货色,感觉挺 cool 的,拿进去分享下:

置信你看到图,不必我说,你也猜到是啥了吧?html 里能够跑 python 代码了

看到好多 Python 公众号曾经开始猛吹将来了,但乍看怎么感觉有点像 JSP?或者一些模版引擎?是提高还是倒退呢?与其瞎想,不如认真看看这个东东的能力吧!

依据官网介绍,这个名为 PyScript 的框架,其外围指标是为开发者提供在规范 HTML 中嵌入 Python 代码的能力,应用 Python 调用 JavaScript 函数库,并以此实现利用 Python 创立 Web 利用的性能。

看到介绍里提到了调用 JavaScript 函数库的能力,看来跟 JSP 或者模版引擎还是有区别的。

PyScript 疾速体验

官网给了一个例子,能够帮忙咱们观的感触这个开发框架的能力,无妨跟着 DD 看看,它能做啥吧!

第一个案例,hello world

代码很简略,就上面这几行。你只须要创立一个 html 文件,而后复制进去就能够了。

<html>
  <head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  </head>
  <body> 
    <py-script> 
        print('Hello, World!') 
    </py-script> 
  </body>
</html>

保留好之后,在浏览器里关上就能看到这样的页面了:

回头再看看这个 html 里的内容,三个核心内容:

  • 引入 pyscript 的款式文件:<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
  • 引入 pyscript 的脚本文件:<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  • <py-script>标签中写具体的 python 代码来输入 Hello World

如果你懒得本人敲代码的话,本文的两个案例代码我打包放在公众号了,须要的敌人能够关注公众号“程序猿 DD”,回复:pyscript 获取。

第二个案例,数据定义 + 数据展现

先创立一个 data.py 文件,而后退出后面的代码。性能很简略,就是随机生成(x,y)的坐标

import numpy as np

def make_x_and_y(n):
    x = np.random.randn(n)
    y = np.random.randn(n)
    return x, y

再创立一个 html 文件,退出上面的代码

<html>
    <head>
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
      <py-env>
        - numpy
        - matplotlib
        - paths:
          - /data.py
      </py-env>
    </head>

  <body>
    <h1>Let's plot random numbers</h1>
    <div id="plot"></div>
    <py-script output="plot">
    import matplotlib.pyplot as plt
    from data import make_x_and_y

    x, y = make_x_and_y(n=1000)

    fig, ax = plt.subplots()
    ax.scatter(x, y)
    fig
    </py-script>
  </body>
</html>

这里就略微简单一些了,除了 hello world 中的几个要点外,这里还有这几个要关注的中央:

  • <py-env>标签:这里申明要引入的包和要引入的文件(下面创立的data.py
  • <py-script output="plot">:这里定义了要在 <div id="plot"></div> 中输入的内容,能够看到这里的逻辑都是用 python 写的

这个页面的执行成果是这样的:

是不是很神奇呢?整个过程中都没有大家相熟的 cs、js 内容,就实现了这样一个图的页面实现。

小结

最初,谈谈在整个尝试过程中,给我的几个感触:

  1. 开发体验上高度对立,对于 python 开发者来说,开发 Web 利用的门槛能够更低了
  2. 感觉性能上仿佛有所有余,几个简单的案例执行有点慢,开始认为是局部国外 cdn 的缘故,起初移到本地后,还是慢。这部分可能还须要进一步优化。

这个开发框架目前还只是 alpha 版本,将来肯定还会有更多个性与优化进去,总体上我感觉这个框架还是十分 cool 的,尤其对于刚学会 Python,或者只会 Python,但又想疾速开发 Web 利用的小伙伴来说,可能将会是个不错的抉择,那你感觉这个框架如何?将来会不会火?留言区聊聊吧!

本文的两个案例代码我打包放在公众号了,须要的敌人能够关注公众号“程序猿 DD”,回复:pyscript 获取。

欢送关注我的公众号:程序猿 DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源

正文完
 0