目录

  • 基础介绍
  • 功能示例
基础介绍

官网上的概述为

PyScript is a Pythonic alternative to Scratch, JSFiddle, and other “easy to use” programming frameworks, with the goal of making the web a friendly, hackable place where anyone can author interesting and interactive applications.

简而言之,就是Scratch、JSFiddle和其他“易于使用”的编程框架的python替代品,其目标是使web成为一个友好的、可hack的地方,任何人都可以在这里编写有趣的、交互式的应用程序。

在PyScript官网中,核心功能介绍有

  • 浏览器中的Python:启用插入式内容、外部文件托管和应用程序托管,而不依赖服务器端配置
  • Python生态系统:运行许多流行的Python包和科学栈(如numpy、pandas、scikit-learn等)
  • Python与JavaScript:Python与JavaScript对象和名称空间之间的双向通信
  • 环境管理:允许用户定义要包含哪些包和文件以使页面代码运行
  • 可视化应用程序开发:使用现成的UI组件,如按钮、容器、文本框等
  • 灵活的框架:一种灵活的框架,可以利用它直接在Python中创建和共享新的可插入和可扩展组件
功能示例

来看看一些例子吧

直接下载压缩包pyscript-main

刚看了一下压缩包,要用npm构建一下,在example文件夹中会找到js和css文件,导入即可。

> npm install
> npm run build

或者使用CDN的方式使用PyScript

<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>

py-script:一般是使用<py-script>标签来写Python代码

<html><py-script> print('Now you can!') </py-script>
</html>

使用write方法:我们使用一个标记将一行或多行按顺序打印到页面上。在中,您可以访问pyscript模块,该模块提供了一个.write()方法来将字符串发送到页面上已标记的元素中。

  <body><b><p>Today is <u><label id='today'></label></u></p></b><br><div id="pi" class="alert alert-primary"></div><py-script>import datetime as dtpyscript.write('today', dt.date.today().strftime('%A %B %d, %Y'))def compute_pi(n):pi = 2for i in range(1,n):pi *= 4 * i ** 2 / (4 * i ** 2 - 1)return pipi = compute_pi(100000)pyscript.write('pi', f'π is approximately {pi:.3f}')</py-script></body>

py-env:还有第二个内置标签py-env,是通过引用.whl文件来使用第三方库的相关方法

<py-env>
- './static/wheels/travertino-0.1.3-py3-none-any.whl'
</py-env>
 <py-env>- numpy- matplotlib</py-env><py-script output="plot">import matplotlib.pyplot as pltimport numpy as npx = np.random.randn(1000)y = np.random.randn(1000)fig, ax = plt.subplots()ax.scatter(x, y)fig</py-script>

当然对于这种高内聚的行为,不太符合现在模块分离的原则,因此,可以想到使用Python和HTML分离的方法

# data.py
import numpy as npdef make_x_and_y(n):x = np.random.randn(n)y = np.random.randn(n)return x, y
    <py-env>- numpy- matplotlib- paths:- ./data.py</py-env><py-script output="plot">import matplotlib.pyplot as pltfrom data import make_x_and_yx, y = make_x_and_y(n=1000)fig, ax = plt.subplots()ax.scatter(x, y)fig</py-script>

py-config:使用标记以YAML格式设置和配置关于PyScript应用程序的通用元数据。

<py-config>autoclose_loader: falseruntimes:- src: "https://cdn.jsdelivr.net/pyodide/v0.20.0/full/pyodide.js"name: pyodide-0.20lang: python
</py-config>

pyscripy.js文件中可以看到

customElements.define('py-script', PyScript);
customElements.define('py-repl', PyRepl);
customElements.define('py-env', PyEnv);
customElements.define('py-box', PyBox);
customElements.define('py-button', PyButton);
customElements.define('py-title', PyTitle);
customElements.define('py-inputbox', PyInputBox);
customElements.define('py-register-widget', PyWidget);
customElements.define('py-loader', PyLoader);
customElements.define('py-config', PyConfig);

看了一下相关文档,目前暂时只有这几个元素了,而且试了一下建立HTTPS和HTTP的功能貌似不太支持,可能是由于在动态获取包的时候因为网速的原因难以下载吧,希望能在后期优化下载第三方库的hub,提高可拓展性。

当然,也可以直接先下载whl然后我们加载进去即可,但是这种貌似失去了某些便捷性。

突然想起Python课老师的话,“Python除了不能生孩子,其他都可以做”,期待越来越好!

探索一下PyScript的妙用相关推荐

  1. Android 资源保护问题——探索

    apk文件使用解压工具就能看到drawable等资源,但是有些游戏中的图片资源却是无法看到的. 这个问题探索了许久-- [1]图片资源不放置在drawable文件下,放在assets中(但是解压apk ...

  2. 教师课堂教学必备的100个妙招,总有一个适合你!

    教师课堂教学必备的100个妙招,总有一个适合你! 转自:郝任工作室 4天前 1 微笑中,拉近师生的心 教师的微笑有着无穷的魅力.教师的微笑能调节课堂情绪,增进师生情谊,激发学生的学习的热情,增强其自信 ...

  3. 谷歌新App观妙中国发布:AR传承文化艺术,小米vivo应用宝可体验

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI 观妙中国,谷歌最新官宣的App. 现在在小米.腾讯应用宝和vivo等App商店,就能下载使用. 其中集成了谷歌AI.AR技术,更凝聚了传承 ...

  4. 网易云信+妙克:从零到标杆的在线音视频音乐教学之路

    音乐教育作为兴趣教育的一大门类,在近两年的教育发展中,尤其引人注目.中国产业调研网数据显示,到2020年,中国少儿钢琴培训的市场规模有望达到1000亿.与此同时,移动互联网不断催生出新的音乐教育模式, ...

  5. 线性Attention的探索:Attention必须有个Softmax吗?

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 众所周知,尽管基于 Attention 机制的 Transformer 类模型有着良好的并行性能,但它的空 ...

  6. tableau地图城市数据_优阅达“优分享” | Tableau 2020.4 “地图标记层” 的多种妙用...

    前不久,Tableau 2020.4 发布了!众多新功能特性让数据粉激动不已. 其中,空间分析"地图标记层"功能,被称为 Tableau 开发团队史上最大胆的设计之一.它与 Ado ...

  7. 穿越时空,跟我一起探索云栖数字谷(2021云栖大会免费送票)

    简介:提前报名锁定云栖大会门票 4 天 96 小时 数智沉浸极致体验 10 大技术板块.21 大行业 100+ 场 数字新思想论坛 450+ 最热科技新品 1000+ 数字生活新物种 40000 平米 ...

  8. 三消也玩策略?这款游戏没那么简单——《妙连千军》

    在笔者的印象中,最开始接触三消类作品(Match 3)还是在早期的8bit机上,那是红遍一时的<马里奥医生>.玩家通过堆积色泽相同的胶囊,以此做到消灭瓶子中对应色泽的病菌.这种好似< ...

  9. 【转】React 16 中从 setState 返回 null 的妙用

    概述 在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态.在调用 .setState 时返回 null 将不再触发更新. 我们将通过重构一个 mo ...

最新文章

  1. java pdf转换为png图片(1)
  2. React编写input组件传参共用onChange
  3. 【nginx配置】 proxy_pass反向代理配置中url后面加不加/的说明
  4. win10雷电3接口驱动_雷电3 ,高速又多用,尽在一个接口
  5. 【笔记】docker核心概念和使用 docker命令
  6. 转:链表相交问题 详解
  7. 微信小程序原生 地区选择器
  8. 三菱四节传送带控制梯形图_【毕业设计】三菱plc(论文)基于PLC的传送带的控制系统设计毕业设计...
  9. [VC]基于对话框程序,自定义工具栏(支持真彩色图标,可添加文字)
  10. Ubuntu14.04安装及配置mysql5.7.19
  11. 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目
  12. Cry with DX11
  13. loss weight
  14. 普通最小二乘法、加权最小二乘法、广义最小二乘法
  15. android软键盘enter键
  16. 12.2 关闭DLM 自动收集统计信息 (SCM0)ORA-00600之[ksliwat: bad wait time]
  17. 从双曲几何到Gauss-Bonnet-Chern定理
  18. 笔顺、拼音查询小工具推介
  19. Space/Aerial-Assisted Computing Offloading for IoT Applications: A Learning-Based论文复现
  20. S7-1200变量地址

热门文章

  1. 【CSS】transition图片旋转案例-6张图片旋转特效
  2. 数据分析复盘——相关理论之精益数据分析
  3. 一款国内开发的原型设计软件,非常棒!
  4. vite-vue3_pinia 登录
  5. Linux自启动-桌面进程和守护进程
  6. 计算机投影仪的作用是什么,投影机中的HDR功能是什么?
  7. 什么是sga oracle,SGA主要有那些部分,主要作用是什么?
  8. linux dd flash,用dd命令生成bin文件,而不用拆flash读取文件
  9. Intel拟进军7nm,对标台积电5nm!
  10. 上海计算机单招学院排名,2020年上海所有大学排名榜及分数线(2021参考)