推薦一款新框架PyScript:在 HTML 嵌入 Python 代碼!

一、介紹

網頁瀏覽器是目前世界上最普遍,最可攜的計算機環境。幾乎所有人都可以在計算機或是手機上使用網頁瀏覽器,以沒有基礎設施障礙的方式訪問程序。

在 PyCon US 2022 上,知名 Python 發行版 Anaconda 開發商近日宣佈了可在瀏覽器端運行的 Python — PyScript

根據官方的介紹,PyScript 是一個開發框架,該框架允許在瀏覽器中運行Python應用。爲開發者提供了在標準 HTML 中嵌入編寫 Python 代碼的能力、使用 Python 調用 JavaScript 函數庫,以及創建 Python Web 應用。它可以讓開發者在HTML中創建豐富的Python應用程序,且Python代碼可與JavaScript實現雙向通信

官方表示,通過使用PyScript,Python開發者便不需要擔心程序部署問題,因爲PyScript讓程序直接在網頁瀏覽器中運行,也就是說,可以在HTML文件中,分享開發成果,只要其他人在網頁瀏覽器中打開文件,該文件中的程序代碼就會開始運行。

2、原理及安裝

官網地址:

https://pyscript.net/

由於PyScript目前仍在alpha測試階段,讀者感興趣的話,可以從pyscript.net下載嚐鮮。

另外,PyScript 基於 Pyodide 構建,Pyodide 由編譯成 WebAssembly 的 CPython 3.8 解釋器組成,允許在網頁瀏覽器中運行 Python。Pyodide 可以安裝來自 PyPi 的任何 Python 包。Pyodide 還包括一個外部函數接口,可以將 Python 包暴露給 JavaScript,並將瀏覽器 UI,包括 DOM,暴露給 Python。

關於 PyScript 運行原理的更多信息查看:https://engineering.anaconda.com/2022/04/welcome-pyscript.html

使用前,需要先下載對應依賴的靜態資源文件(CSS、JS),一種方式直接將文件下載到本地再引入

<link rel="stylesheet" href="path/to/pyscript.css" />
<script defer src="path/to/pyscript.js"></script>

另外一種方式,直接在線引入

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

3、使用示例

項目源碼地址:

https://github.com/pyscript/pyscript

image-20220514133421295

用VSCODE或者PyCharm,或者其他任一你喜歡的編輯器,新建HTML文件,編寫示例代碼,類似如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>PyScript Hello World</title>

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

  <body>
    Hello world! <br>
    This is the current date and time, as computed by Python:
    <py-script>
    from datetime import datetime
    now = datetime.now()
    now.strftime("%m/%d/%Y, %H:%M:%S")
    </py-script>
  </body>
</html>

該示例用於在HTML前端頁面,利用Python代碼實現打印當前時間的功能。

更多示例Demo:

https://github.com/pyscript/pyscript/tree/main/pyscriptjs/examples

坦白說,PyScript 作爲一款新面市不久的框架,還存在很多不穩定的問題,分享給各位讀者,目的是希望大家能從中看到不同的設計思路,取其精華,開闊視野,在沒有應用場景時,並不需要強制自己去使用,希望大家抱有一種理性的視角來看待新技術、新框架。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章