新聞中心
PyScript 由來自 Anaconda 的團隊開發(fā),是一個用于在 HTML 中插入 Python 代碼的工具,這意味著你可以在 HTML 中編寫和運行 Python 代碼,在 PyScript 中調(diào)用 Javascript 庫,并在 Python 中進行所有的 Web 開發(fā),是不是很神奇!

為揭西等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及揭西網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計制作、成都做網(wǎng)站、揭西網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
有了 PyScript,我們現(xiàn)在可以在 HTML 中編寫 Python 代碼并構(gòu)建 Web 應用了,PyScript 可以讓更多的前端開發(fā)者接觸到 Python 的強大功能。有了 PyScript,我們不再需要擔心部署問題,因為一切都將在你的瀏覽器中執(zhí)行,比如作為數(shù)據(jù)科學家,你可以在一個 html 文件中分享模型,只要其他人在瀏覽器中打開該文件,就會運行代碼了。
PyScript 是基于 Pyodide(https://pyodide.org/) 開發(fā)的,它是 CPython 到 WebAssembly/Emscripten 的入口,PyScript 支持在瀏覽器中編寫和運行 Python 代碼,未來還將提供對其他語言的支持。
什么是 WebAssembly?
使得用 Python 編寫網(wǎng)站成為可能的基礎(chǔ)技術(shù)是 WebAssembly。最初開發(fā) WebAssembly 時,Web 瀏覽器僅支持 Javascript。WebAssembly 于 2017 年首次發(fā)布,到 2019 年迅速成為了 W3C 的官方標準,它包括一種人類可讀的 .wat 文本格式語言,然后將其轉(zhuǎn)換為瀏覽器可以運行的二進制 .wasm 格式,這就使得我們可以用任何語言編寫代碼,將其編譯為 WebAssembly,然后在網(wǎng)絡瀏覽器中運行。
如何使用 PyScript?
PyScript 的 alpha 版本可以在 pyscript.net 上找到,代碼可在 https://github.com/pyscript 獲得。PyScript 允許你使用以下三個主要組件在 html 中編寫 Python:
- 定義了運行 Python 代碼所需的 Python 包。
- 是你編寫在網(wǎng)頁中執(zhí)行的 Python 代碼的地方。
- 創(chuàng)建一個 REPL 組件,用于評估用戶輸入的代碼并顯示結(jié)果。
我們先創(chuàng)建一個最簡單的示例,代碼如下所示:
PyScript Hello World
Hello world!
This is the current date and time, as computed by Python:
from datetime import datetime
now = datetime.now()
now.strftime("%m/%d/%Y, %H:%M:%S")
只需要這頁面上顯示當前時間即可,在瀏覽器中打開后就可以看到結(jié)果了,如下所示:
又比如我們創(chuàng)建一個具有流式數(shù)據(jù)的 Panel 儀表盤,代碼如下所示,先通過 引入需要的包,然后在 中編寫 Python 代碼,如果你不喜歡直接在下編寫 Python 代碼,也可以使用 Python 文件作為源代碼,例如。
PyScript/Panel Streaming Demo
- bokeh
- numpy
- pandas
- panel
import asyncio
import panel as pn
import numpy as np
import pandas as pd
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from panel.io.pyodide import show
df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD')).cumsum()
rollover = pn.widgets.IntInput(name='Rollover', value=15)
follow = pn.widgets.Checkbox(name='Follow', value=True, align='end')
tabulator = pn.widgets.Tabulator(df, height=450, width=400)
def color_negative_red(val):
"""
Takes a scalar and returns a string with
the css property `'color: red'` for negative
strings, black otherwise.
"""
color = 'red' if val < 0 else 'green'
return 'color: %s' % color
tabulator.style.applymap(color_negative_red)
p = figure(height=450, width=600)
cds = ColumnDataSource(data=ColumnDataSource.from_df(df))
p.line('index', 'A', source=cds, line_color='red')
p.line('index', 'B', source=cds, line_color='green')
p.line('index', 'C', source=cds, line_color='blue')
p.line('index', 'D', source=cds, line_color='purple')
def stream():
data = df.iloc[-1] + np.random.randn(4)
tabulator.stream(data, rollover=rollover.value, follow=follow.value)
value = {k: [v] for k, v in tabulator.value.iloc[-1].to_dict().items()}
value['index'] = [tabulator.value.index[-1]]
cds.stream(value)
cb = pn.state.add_periodic_callback(stream, 200)
controls = pn.Row(cb.param.period, rollover, follow, width=400)
await show(controls, 'controls')
await show(tabulator, 'table')
await show(p, 'plot')
上面的代碼在瀏覽器中打開后就可以直接顯示對應的效果了:
關(guān)于 PyScript 的更多使用方法可以查看 Git 倉庫示例 https://github.com/pyscript/pyscript/tree/main/pyscriptjs/examples 了解更多。
網(wǎng)站名稱:什么?可以在HTML中直接插入Python代碼?
本文來源:http://fisionsoft.com.cn/article/dhshicp.html


咨詢
建站咨詢
