<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          瀏覽器可以運行 Python 代碼了?

          共 2762字,需瀏覽 6分鐘

           ·

          2022-05-12 22:54

          作為 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 目前構建在 Pyodide上,Pyodide 是 CPython 到 WebAssembly/Emscripten 的端口。

          PyScript 支持在瀏覽器中編寫和運行 Python 代碼,并將在未來為其他語言提供支持。

          你可能想知道,什么是 WebAssembly?以下來自維基百科:

          WebAssembly(簡稱 wasm)是一個實驗性的低級編程語言,應用于瀏覽器內(nèi)的客戶端。WebAssembly 是便攜式的抽象語法樹,被設計來提供比 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 帶來的便捷

          1、PyScript 使更多的前端開發(fā)人員能夠使用 Python。

          2、更低的編程門檻。因為幾乎每個人都可以訪問網(wǎng)頁瀏覽器,無論是在計算機上還是在手機上。這意味著不需要安裝任何額外軟件就可以開始編程。

          3、有了 PyScript,不再需要擔心部署。PyScript 提供了“超越云端的架構轉(zhuǎn)變”,一切都會網(wǎng)頁瀏覽器中發(fā)生。

          如何使用 PyScript

          PyScript 使用以下三個主要組件在 html 中編寫 Python:

          • py-env 定義了運行 Python 代碼所需的包。
          • py-script 是在網(wǎng)頁中編寫 Python 代碼的地方。
          • py-repl 創(chuàng)建一個 REPL(讀取-評估-打印循環(huán))組件,用于評估用戶輸入的代碼并顯示結果。

          比如代碼 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 帶到瀏覽器中,我們覺得還是非常有價值的,對這項技術創(chuàng)新充滿期待,目前 GitHub 2.7K 的星,如果你也感興趣,不妨用它來做一個網(wǎng)站。

          參考資料

          [1]

          PyScript:?https://github.com/pyscript/pyscript

          [2]

          todo.html:?https://github.com/pyscript/pyscript/blob/main/pyscriptjs/examples/todo.html

          [3]

          repl:?https://github.com/pyscript/pyscript/blob/main/pyscriptjs/examples/repl.html

          [4]

          這里:?https://github.com/pyscript/pyscript/tree/main/pyscriptjs/examples


          這是我開發(fā)的機器人公眾號小號,目前增加了天氣查詢,955公司名單,關注時間查詢;后面還會增加圖片功能和每日送書抽獎送書活動,以及調(diào)戲功能,歡迎來體驗,捧場。

          一個機器人公眾號已經(jīng)上線,歡迎調(diào)戲




          推薦閱讀:

          入門:?最全的零基礎學Python的問題? |?零基礎學了8個月的Python??|?實戰(zhàn)項目?|學Python就是這條捷徑


          干貨:爬取豆瓣短評,電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個海量小姐姐素描圖?|碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影


          趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!


          AI:?會做詩的機器人?|?給圖片上色?|?預測收入?|?碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影


          小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水印!?|?一鍵把html網(wǎng)頁保存為pdf!|??再見PDF提取收費!?|?用90行代碼打造最強PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r機票提示器!?|60行代碼做了一個語音壁紙切換器天天看小姐姐!



          年度爆款文案

          點閱讀原文,看B站我的視頻!

          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  插逼视频免费看 | 国产春色| 色人人。色人人综合 | 日本精品在线 | 亚洲秘 无码一区二区三区密桃 |