<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近 Anaconda 開大會發布了 PyScript ,它允許我們將 Python 程式碼嵌入到 HTML 中,並在瀏覽器中允許。PyScript 旨在為使用者提供一流的程式語言,該語言具有一致的樣式規則、更具表現力且更易於學習。
熟悉前端的朋友應該馬上就可以反應到:這就是替代 JavaScript 啊!
確實,這個功能就類似於 JavaScript,如果後面發展得好的話,我們完全可以不寫 JavaScript,直接寫 Python 也能實現一樣的效果。
這個專案出來之後,馬上躥升到 GitHub 趨勢榜榜首,短短20天已經有 10K+ 的 star 了,可見其熱度之高。
我們不知道 anaconda 有沒有這個野心,但是 PyScript 的出現,確實是一件振奮人心的事情,意味著你會 Python 的話,再加上前端知識,就可以寫出漂亮的前端頁面了。對於 Pythoner 來說,我們可以用 Python 和 HTML前端知識做全棧工程師了。
PyScript 核心特性:
PyScript 目標:
下面,我們來體驗一下這個新生事物吧!
我們可以使用 CDN 來安裝 PyScript:
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
接著,我們來看看一個簡單的頁面:
<!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"> <!-- 引入 PyScript --> <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> <script defer src="https://pyscript.net/alpha/pyscript.js"></script> <title>First PyScript Application</title> <style> py-script { width: 100%; height: 100%; font-size: 20px; text-align: center; position: absolute; } </style> </head> <body> <py-script> print('Hello PyScript!') </py-script> </body> </html>
執行這個程式,你就可以在瀏覽器頁面上看到這個結果了:
這就是我們著名的Hello
式問候!
這段前端程式碼裡面,我們直接使用py-script
標籤包裹 Python 程式碼,就實現前端指令碼控制功能了。
我這裡是在 vscode 裡面執行的,執行程式碼之前需要安裝Live Server
這個外掛,然後就可以直接瀏覽器存取了。
我們再來看一個複雜一點的例子:
<html> <head> <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> <script defer src="https://pyscript.net/alpha/pyscript.js"></script> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" crossorigin="anonymous"> </head> <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 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> </body> </html>
這個例子中,我們使用<py-script>
標籤,在裡面提供.write()
方法,將字串寫到頁面的標籤中。
執行這段程式碼,我們會看到瀏覽器頁面的結果:
我們還可以在頁面中引入 Python 的包,來實現一些簡便的操作。
<html> <head> <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> <script defer src="https://pyscript.net/alpha/pyscript.js"></script> <py-env> - numpy - matplotlib </py-env> </head> <body> <h1>Let's plot random numbers</h1> <div id="plot"></div> <py-script output="plot"> import matplotlib.pyplot as plt import numpy as np x = np.random.randn(1000) y = np.random.randn(1000) fig, ax = plt.subplots() ax.scatter(x, y) fig </py-script> </body> </html>
在這裡,我們參照了numpy
和 matplotlib
這兩個包,參照包是在<head>
標籤內部通過<py-env>
標籤來實現。
執行這個程式,我的頁面始終處於載入狀態:
現階段,執行帶有 PyScript 的頁面載入速度還是有點感人的,好像一下子回到了原始年代。所以,想要被大家廣泛使用還有很長的路要走。
目前階段,我們還只能繼續等待,想要嚐鮮的話,可以在去 GitHub 上看看。在公眾號後臺留言PyScript
獲取專案的 GitHub 地址。
專案現在還在完善階段,許多功能還沒有支援,但是從其熱度和參與貢獻的人數來看,前途還是光明的,畢竟 Python 有著這麼多的應用基礎,學會 Python 就可以寫前端, Python 的那些便捷操作庫都可以在頁面直接使用的話,會大大提高大家的效率,我們也不用去學習現在越來越複雜的那一套前端技術了。
到此這篇關於基於python詳解PyScript到底是什麼的文章就介紹到這了,更多相關python PyScript內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45