自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:拋掉JavaScript,用HTML和Python做網(wǎng)站

開發(fā) 前端
目前僅僅從運行Python代碼這個小功能上,PyScript做的比Jupyter還是差遠(yuǎn)了。但是PyScript可以編輯修改HTML元素,這樣它就可以在一定程度上替代JavaScript,從而配合HTML實現(xiàn)一些功能復(fù)雜的網(wǎng)頁。

有時候,我們的電腦上沒有安裝Python,但你需要驗證一段Python代碼的運行效果。

又有時候,你想做一個網(wǎng)頁,但是你只會HTML和Python。那么如果要做一個帶有一些復(fù)雜邏輯的網(wǎng)頁,只能去學(xué)JavaScript嗎?

其實未必。如果你不考慮網(wǎng)頁美觀的話,你可以用HTML + Python實現(xiàn)一個簡單的網(wǎng)頁。

今天我們要介紹的東西,叫做PyScript,使用它,不需要安裝任何軟件。只要有一個記事本,就能寫一段HTML+Python的代碼。寫完以后,雙擊這個HTML文件,用瀏覽器打開,就能直接看到Python代碼的運行結(jié)果。

假設(shè)我現(xiàn)在要寫一段代碼,使用高效的算法計算斐波那契數(shù)列前10項的值?,F(xiàn)在我已經(jīng)把代碼寫好了,想驗證一下它是否正確:

def fib(n):
if n in [1, 2]:
return 1
a = 1
b = 1
for _ in range(2, n):
a, b = b, a + b
return b

我的電腦上沒有Python,我也不知道任何在線的Python解釋器。怎么辦呢?這個時候,你只需要在這個Python代碼的前后再添加一些HTML代碼,把它保存成一個.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>
def fib(n):
if n in [1, 2]:
return 1
a = 1
b = 1
for _ in range(2, n):
a, b = b, a + b
return b

for i in range(1, 11):
print(f'第{i}項的結(jié)果是:{fib(i)}')
</py-script>
</body>
</html>

保存以后,雙擊這個HTML文件,用瀏覽器打開,就可以看到運行結(jié)果了,如下圖所示:

到目前為止,似乎跟那些在線的Python運行環(huán)境沒什么區(qū)別。但PyScript更厲害的是,它自帶了一些常見的第三方庫,例如numpy或者M(jìn)atplot,甚至它還可以手動安裝第三方庫。

對于它自帶的numpy和matplotlib,可以直接使用標(biāo)簽聲明:

<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
</py-env>
</head>

<body>
<h1>Let's plot random numbers</h1>
<div id="plot"></div>
<py-script output="plot">
import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(1000)
y = np.random.randn(1000)

fig, ax = plt.subplots()
ax.scatter(x, y)
fig
</py-script>
</body>
</html>

運行效果如下圖所示:

如果你想安裝第三方庫,只需要去下載這個庫對應(yīng)的.whl文件,把它跟HTML文件放到一起,然后在中使用相對路徑導(dǎo)入就可以了。但經(jīng)過我的測試,導(dǎo)入的requests工作起來有點問題。因此就不多介紹了??纯垂俜绞欠駮迯?fù)這個bug吧。

PyScript的Github[1]上,給了不少Demo,甚至可以用它來做超級馬里奧的網(wǎng)頁游戲。大家有興趣可以看看。

總結(jié)

目前僅僅從運行Python代碼這個小功能上,PyScript做的比Jupyter還是差遠(yuǎn)了。但是PyScript可以編輯修改HTML元素,這樣它就可以在一定程度上替代JavaScript,從而配合HTML實現(xiàn)一些功能復(fù)雜的網(wǎng)頁。

參考資料

[1]Github: https://github.com/pyscript/pyscript

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2023-10-28 12:14:35

爬蟲JavaScriptObject

2021-04-12 21:19:01

PythonMakefile項目

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(diào)用

2024-07-30 08:16:18

Python代碼工具

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

2024-07-30 08:11:16

2021-07-27 21:32:57

Python 延遲調(diào)用

2021-10-15 21:08:31

PandasExcel對象

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2020-05-19 13:55:38

Python加密密碼

2024-02-20 22:13:48

Python項目Java

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2022-03-12 20:38:14

網(wǎng)頁Python測試

2021-04-19 23:29:44

MakefilemacOSLinux

2022-06-20 19:37:59

Python字符串HTML

2024-07-19 18:23:17

2021-05-08 19:33:51

移除字符零寬

2024-11-11 00:38:13

Mypy靜態(tài)類型
點贊
收藏

51CTO技術(shù)棧公眾號