python最近又在搞大事件,就在最近,github上忽然多了一个神奇的我的项目: git地址.
并且最近始终在更新。一看这个名字就让咱们不禁想起JavaScript,再去官网一看pyscript官网, 这家伙不仅模拟了JavaScript的名字,甚至连身子都想要取而代之!
官网对pyscript的冀望是能够在浏览器上间接运行python。
<html>| ...| <py-script> print('Now you can!') </py-script>|</html>|
怀着一颗好奇心,咱们把github上的代码克隆下来,发现是一个基于node的前端我的项目,那第一步先把他跑起来!
进入\pyscript-main\pyscriptjs目录下,
- 首先装置依赖
cnpm i
- 而后先在本地运行
npm run dev
- 关上 http://localhost:8080/
首页是一个纯纯的html文件,在\pyscript-main\pyscriptjs\examples目录下的index.html,如下图:
咱们先来看看最简略的Hello world页面,如下图:
页面的确够简略,再看看它的代码:
<body> Hello world! <br> This is the current date and time, as computed by Python: <py-script>from datetime import datetimenow = datetime.now()now.strftime("%m/%d/%Y, %H:%M:%S") </py-script> </body>
想必大家都能够看得懂这段代码,精彩的点在于,只有在<py-script>
标签中,就能够间接应用python语法来进行操作了,并且仿佛比JavaScript还要间接嗷,甚至还有点数据绑定的意思。
再来看看另一个经典的例子,todo_list,对应todo.html,如下图:
再看代码:
... <py-script src="/todo.py"> </py-script>...<section> <div class="text-center w-full mb-8"> <h1 class="text-3xl font-bold text-gray-800 uppercase tracking-tight">To Do List</h1> </div> <div> <input id="new-task-content" class="border flex-1 mr-3 border-gray-300 p-2 rounded" type="text"> <button id="new-task-btn" class="p-2 text-white bg-blue-600 border border-blue-600 rounded" type="submit" pys-onClick="add_task"> Add task </button> </div> <py-list id="myList"></py-list> <div id="list-tasks-container" class="flex flex-col-reverse mt-4"> </div> <template id="task-template"> <section class="task bg-white my-1"> <label for="flex items-center p-2 "> <input class="mr-2" type="checkbox" class="task-check"> <p class="m-0 inline"></p> </label> </section> </template> </section>
在代码最下面居然引入了一个.py
文件,代码中应用pys-onClick
绑定了add_task
办法,而add_task
办法在引入的todo.py
中进行了申明:
def add_task(*ags, **kws): ...
也就是说,pyscript
真的能够做到和JavaScript
在浏览器中运行时一样的调用体验,甚至还能够在浏览器中援用python
类库!
在另一个todo_pylist.html页面中,提供了间接在浏览器中运行python
命令的办法,
为了显示本人在解决简单图形方面的性能,示例中还提供了和three.js
联合而成的webgl示例页面:
和一些图表页面:
能够看到,在性能实现上,pyscript
根本能够实现JavaScript可能实现的性能。
不过从目前的体验上来看,在浏览器上运行pythoon
属实是够慢的,每次关上页面都得等好几秒,并且第一次关上页面的时候居然还要下载python
类库,github上曾经有人提出了这个问题,并且官网答复他们曾经致力了,并且还在持续致力。
有网友说又能够少把握一门语言多实现一项性能。不过从目前用户体验这个角度来看,pyscript
想要取代JavaScript
在浏览器上的位置可能还有一段路要走,然而却给咱们提供了玩python
的另一条新路线。pyscript
还能够朝着那些方面倒退,欢送大家提出本人的认识。