大家好,我是DD,已經是封閉在家的第51天了!
最近一直在更新Java新特性和IDEA Tips兩個專欄,其他方向內容的動態關注少了,昨天天晚上刷推的時候,瞄到了這個神奇的東西,覺得挺cool的,拿出來分享下:

相信你看到圖,不用我說,你也猜到是啥了吧?html里可以跑python代碼了!
看到好多Python公眾號已經開始猛吹未來了,但乍看怎么覺得有點像JSP?或者一些模版引擎?是進步還是倒退呢?與其瞎想,不如仔細看看這個東東的能力吧!
根據官方介紹,這個名為PyScript的框架,其核心目標是為開發者提供在標準HTML中嵌入Python代碼的能力,使用 Python呼叫JavaScript函式庫,并以此實作利用Python創建Web應用的功能,
看到介紹里提到了呼叫JavaScript函式庫的能力,看來跟JSP或者模版引擎還是有區別的,
PyScript 快速體驗
官方給了一個例子,可以幫助我們觀的感受這個開發框架的能力,不妨跟著DD看看,它能做啥吧!
第一個案例,hello world
代碼很簡單,就下面這幾行,你只需要創建一個html檔案,然后復制進去就可以了,
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<py-script>
print('Hello, World!')
</py-script>
</body>
</html>
保存好之后,在瀏覽器里打開就能看到這樣的頁面了:

回頭再看看這個html里的內容,三個核心內容:
- 引入pyscript的樣式檔案:
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /> - 引入pyscript的腳本檔案:
<script defer src="https://pyscript.net/alpha/pyscript.js"></script> <py-script>標簽中寫具體的python代碼來輸出Hello World
如果你懶得自己敲代碼的話,本文的兩個案例代碼我打包放在公眾號了,需要的朋友可以關注公眾號“程式猿DD”,回復:pyscript 獲取,
第二個案例,資料定義 + 資料展示
先創建一個data.py檔案,然后加入前面的代碼,功能很簡單,就是隨機生成(x,y)的坐標
import numpy as np
def make_x_and_y(n):
x = np.random.randn(n)
y = np.random.randn(n)
return x, y
再創建一個html檔案,加入下面的代碼
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- numpy
- matplotlib
- paths:
- /data.py
</py-env>
</head>
<body>
<h1>Let's plot random numbers</h1>
<div id="plot"></div>
<py-script output="plot">
import matplotlib.pyplot as plt
from data import make_x_and_y
x, y = make_x_and_y(n=1000)
fig, ax = plt.subplots()
ax.scatter(x, y)
fig
</py-script>
</body>
</html>
這里就稍微復雜一些了,除了hello world中的幾個要點外,這里還有這幾個要關注的地方:
<py-env>標簽:這里宣告要引入的包和要引入的檔案(上面創建的data.py)<py-script output="plot">:這里定義了要在<div id="plot"></div>中輸出的內容,可以看到這里的邏輯都是用python寫的
這個頁面的執行效果是這樣的:

是不是很神奇呢?整個程序中都沒有大家熟悉的cs、js內容,就完成了這樣一個圖的頁面實作,
小結
最后,談談在整個嘗試程序中,給我的幾個感受:
- 開發體驗上高度統一,對于python開發者來說,開發Web應用的門檻可以更低了
- 感覺性能上似乎有所不足,幾個復雜的案例執行有點慢,開始以為是部分國外cdn的緣故,后來移到本地后,還是慢,這部分可能還需要進一步優化,
這個開發框架目前還只是alpha版本,未來一定還會有更多特性與優化出來,總體上我覺得這個框架還是非常cool的,尤其對于剛學會Python,或者只會Python,但又想快速開發Web應用的小伙伴來說,可能將會是個不錯的選擇,那你覺得這個框架如何?未來會不會火?留言區聊聊吧!
本文的兩個案例代碼我打包放在公眾號了,需要的朋友可以關注公眾號“程式猿DD”,回復:pyscript 獲取,
歡迎關注我的公眾號:程式猿DD,第一時間了解前沿行業訊息、分享深度技術干貨、獲取優質學習資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/471761.html
標籤:Java
上一篇:【SSM框架】MyBatis筆記 --- 動態sql講義+實戰;map在動態sql中的使用;列名與類中成員變數名不同的兩種解決方案
