pyscript, du python dans notre navigateur web
Bonjour
L'énorme "hipe" de la semaine dans le monde python est pyscript.
pyscript permet d'écrire du code python dans nos pages html. Pour uniquement remplacer javascript, cela n'a pas trop d'intéret (le chargement est long) mais par contre, avec cette technologie, l'énorme plus par rapport à javascript est que nous avons accès aux bibliotèques python (numpy, pandas, ...).
Exemple de base:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <html lang="fr">
<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>
<hr>
<p id="env"></p>
<hr>
<p id="hello"></p>
<py-script>
# Affectation d'une valeur à une balise html par son id
pyscript.write('hello', "Bonjour vous")
</py-script>
<py-script output="env">
# sortie de la dernière instruction dans la balise "output"
from js import console
console.log("sortie dans la console du navigateur web de cette chaine")
globals()
</py-script>
</body>
</html> |
Il est aussi possible d'insérer nos propres fichiers python (uniquement sur serveur web)
Code:
1 2 3 4 5 6 7 8 9 10 11
| <py-env>
- paths:
- ./test.py
</py-env>
...
<py-script>
# utilise un fichier python téléchargé depuis le même serveur http que la page
import test
print(test)
test.bonjour("A vous")
</py-script> |
py-env permet aussi de télécharger des bibliothèques python (quelques Mo à télécharger !)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <py-env>
- pandas
- matplotlib
</py-env>
Cette balise va contenir un graphique...
<p id="plot"></p>
<py-script output="plot">
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
rv = np.random.standard_normal(1000)
fig, ax = plt.subplots()
ax.hist(rv, bins=30)
fig
</py-script> |
Des exemples sont disponibles avec leur code source