瀏覽器可以運行 Python 代碼了,Python 也許會變成前后端通吃的語言
你好,我是征哥,作為 Python 程序員,我很羨慕那些 Javascript 開發(fā)者,動不動就能寫出令人驚艷的網(wǎng)頁。不過今年,我們也能用 Python 寫前端了:Anaconda 團隊開發(fā)出了 PyScript,你可以在 HTML 里面編寫和運行 Python 代碼,調(diào)用 Javascript 庫,換句話說,你可以用 Python 來進行整個前后端開發(fā)。
什么是 PyScript
PyScript[1] 是 Anaconda 團隊開發(fā)的一個 Javascipt 庫,可以在 HTML 標簽里嵌入 Python 代碼,無需服務端就可以運行 Python 代碼。
比如說,我們用 Python 在頁面上顯示日期,先編寫一個 hello_world.html 文件,內(nèi)容如下:
用瀏覽器打開,其運行效果就是這樣的:
這意味著,我們可以在 HTML 中編寫和運行 Python 代碼, 在 PyScript 中調(diào)用 Javascript 庫,并在 Python 中完成所有 Web 開發(fā)。
PyScript 的工作原理
PyScript 目前構(gòu)建在 Pyodide上,Pyodide 是 CPython 到 WebAssembly/Emscripten 的端口。
PyScript 支持在瀏覽器中編寫和運行 Python 代碼,并將在未來為其他語言提供支持。
你可能想知道,什么是 WebAssembly?以下來自維基百科:
WebAssembly(簡稱 wasm)是一個實驗性的低級編程語言,應用于瀏覽器內(nèi)的客戶端。WebAssembly 是便攜式的抽象語法樹,被設(shè)計來提供比 JavaScript 更快的編譯及執(zhí)行。WebAssembly 讓開發(fā)者能運用自己熟悉的編程語言(最初以C/C++作為實現(xiàn)目標)編譯,再藉虛擬機引擎在瀏覽器內(nèi)執(zhí)行。WebAssembly 的開發(fā)團隊分別來自 Mozilla、Google、Microsoft、Apple,代表著四大網(wǎng)絡瀏覽器 Firefox、Chrome、Microsoft Edge、Safari。2017 年 11 月,以上四個瀏覽器都開始實驗性的支持 WebAssembly。WebAssembly 于 2019 年 12 月 5 日成為萬維網(wǎng)聯(lián)盟(W3C)的推薦,與 HTML,CSS 和 JavaScript 一起,成為 Web 的第四種語言。
PyScript 帶來的便捷
- PyScript 使更多的前端開發(fā)人員能夠使用 Python。
- 更低的編程門檻。因為幾乎每個人都可以訪問網(wǎng)頁瀏覽器,無論是在計算機上還是在手機上。這意味著不需要安裝任何額外軟件就可以開始編程。
- 有了 PyScript,不再需要擔心部署。PyScript 提供了“超越云端的架構(gòu)轉(zhuǎn)變”,一切都會網(wǎng)頁瀏覽器中發(fā)生。
如何使用 PyScript
PyScript 使用以下三個主要組件在 html 中編寫 Python:
- py-env 定義了運行 Python 代碼所需的包。
- py-script 是在網(wǎng)頁中編寫 Python 代碼的地方。
- py-repl 創(chuàng)建一個 REPL(讀取-評估-打印循環(huán))組件,用于評估用戶輸入的代碼并顯示結(jié)果。
比如代碼 todo.html[2] 中的兩個標簽、:
執(zhí)行效果:
再來看一個 repl[3] 的例子:
執(zhí)行效果:
更多例子請訪問這里[4]。
如何運行這些 demo ?
git clone https://github.com/pyscript/pyscript.git
cd pyscript
npm install
npm run dev
然后瀏覽器訪問 http://localhost:8080,就會看到這個界面:
PyScript 的未來
PyScript 將 Python 帶到瀏覽器中,我覺得還是非常有價值的,對這項技術(shù)創(chuàng)新充滿期待,目前 GitHub 2.7K 的星,如果你也感興趣,不妨用它來做一個網(wǎng)站。