如何让Python在HTML中运行

 更新时间:2022年05月10日 08:47:51   作者:程序猿DD  
这个名为PyScript的框架,其核心目标是为开发者提供在标准HTML中嵌入Python代码的能力,使用 Python调用JavaScript函数库,并以此实现利用Python创建Web应用的功能,本文给大家介绍Python HTML运行的案例解析,感兴趣的朋友一起看看吧

最近一直在更新Java新特性和IDEA Tips两个专栏,其他方向内容的动态关注少了。昨天天晚上刷推的时候,瞄到了这个神奇的东西,觉得挺cool的,拿出来分享下:

相信你看到图,不用我说,你也猜到是啥了吧?html里可以跑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

如果你懒得自己敲代码的话,本文的两个案例代码可以从百度网盘获取。

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

先创建一个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内容,就完成了这样一个图的页面实现。

小结

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

  • 开发体验上高度统一,对于python开发者来说,开发Web应用的门槛可以更低了
  • 感觉性能上似乎有所不足,几个复杂的案例执行有点慢,开始以为是部分国外cdn的缘故,后来移到本地后,还是慢。这部分可能还需要进一步优化。

这个开发框架目前还只是alpha版本,未来一定还会有更多特性与优化出来,总体上我觉得这个框架还是非常cool的,尤其对于刚学会Python,或者只会Python,但又想快速开发Web应用的小伙伴来说,可能将会是个不错的选择,那你觉得这个框架如何?未来会不会火?留言区聊聊吧!

本文的两个案例代码放在百度网盘了,需要的点击获取吧。

链接: https://pan.baidu.com/s/18KV0P7Ly_rRvTn0xi3zCWQ

提取码: 4wzd 

到此这篇关于让Python在HTML中运行的文章就介绍到这了,更多相关Python HTML运行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python常用模块之requests模块用法分析

    Python常用模块之requests模块用法分析

    这篇文章主要介绍了Python常用模块之requests模块用法,结合实例形式分析了Python使用requests模块发送GET、POST请求及响应相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • python装饰器decorator介绍

    python装饰器decorator介绍

    这篇文章主要介绍了python装饰器decorator介绍,decorator设计模式允许动态地对现有的对象或函数包装以至于修改现有的职责和行为,简单地讲用来动态地扩展现有的功能,需要的朋友可以参考下
    2014-11-11
  • Python 带你快速上手 Apache APISIX 插件开发

    Python 带你快速上手 Apache APISIX 插件开发

    Apache APISIX Python Runner 来了,社区中的小伙伴们在开发 Apache APISIX 插件时又多了一种新选择,本文将用实列向大家介绍,需要的朋友可以参考下面文章内容
    2021-09-09
  • 关于np.meshgrid函数中的indexing参数问题

    关于np.meshgrid函数中的indexing参数问题

    Meshgrid函数在二维与三维空间中用于生成坐标网格,便于进行图像处理和空间数据分析,二维情况下,默认使用笛卡尔坐标系,而三维meshgrid则涉及不同的坐标轴取法,在三维情况下,可能会出现坐标轴排列序混乱
    2024-09-09
  • 18个Python脚本可加速你的编码速度(提示和技巧)

    18个Python脚本可加速你的编码速度(提示和技巧)

    Python的可读性和设计简单性是其广受欢迎的两个主要原因。文中通过实例给大家介绍的很清楚,本文重点给大家分享18个Python脚本可加速你的编码速度,感兴趣的朋友一起看看吧
    2019-10-10
  • Python 转换RGB颜色值的示例代码

    Python 转换RGB颜色值的示例代码

    这篇文章主要介绍了Python 转换RGB颜色值的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 深入理解Python中range和xrange的区别

    深入理解Python中range和xrange的区别

    这篇文章主要介绍了深入理解Python中range和xrange的区别,从用法和输出等方便详细介绍了之间的差别。
    2017-11-11
  • 使用Python实现VPN搭建的流程步骤

    使用Python实现VPN搭建的流程步骤

    VPN(虚拟私人网络)是一种有效的解决方案,可以帮助我们在网络上匿名浏览,保护数据传输的安全性,虽然市面上有许多商业VPN服务,但你也可以通过Python自己搭建一个简单的VPN,本文将介绍如何用Python建立自己的VPN,需要的朋友可以参考下
    2024-06-06
  • pandas 查询函数query的用法说明

    pandas 查询函数query的用法说明

    这篇文章主要介绍了pandas 查询函数query的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python 基于opencv实现高斯平滑

    python 基于opencv实现高斯平滑

    这篇文章主要介绍了python 基于opencv实现高斯平滑,帮助大家更好的理解和使用python处理图片,感兴趣的朋友可以了解下
    2020-12-12

最新评论