version du projet (Browser Python) avec une implémentation du langage de programmation Python 3 pour une exécution côté navigateur web, permettant d'utiliser Python au lieu de JavaScript pour le développement de scripts pour le Web. Le code du projet est écrit en Python et sous licence BSD. La nouvelle version se distingue par sa compatibilité avec et la mise à jour de la bibliothèque standard.
En se connectant aux bibliothèques et , le développeur web peut utiliser Python pour définir la logique fonctionnelle du site côté client, en utilisant Python à la place de JavaScript. Pour inclure du code Python dans les pages, on utilise la balise <script> avec le type mime «text/python». Il est possible d'incorporer le code directement sur la page ou de charger des scripts externes (<script type=»text/python» src=»test.py»>). Le script a un accès complet aux éléments et événements du DOM.
En plus de l'accès à la bibliothèque standard de Python, des bibliothèques spécialisées sont proposées pour interagir avec le DOM et des bibliothèques JavaScript telles que jQuery, D3, Highcharts et Raphael. L'utilisation des frameworks CSS Bootstrap3, LESS et SASS est supportée.
Exécution du code Python à partir de blocs <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект propose pour l'exécution de code Python dans le navigateur un interpréteur CPython compilé en asm.js, et implémente un interpréteur en JavaScript).
La performance finale de la plupart des opérations dans les scripts Python intégrés dans les pages web de la performance de CPython. Un délai survient uniquement lors de la compilation, mais pour l'éliminer, il est possible de charger du code précompilé en JavaScript, une méthode utilisée pour accélérer le chargement de la bibliothèque standard (Brython pour créer des bibliothèques JavaScript basées sur des modules Python).
<script type=»text/python»>
import time
import math
from browser import document
import browser.timer
content = document[«content»]
…
canvas = content.select_one(«.clock»)
if hasattr(canvas, ‘getContext’):
ctx = canvas.getContext(«2d»)
browser.timer.set_interval(set_clock, 100)
show_hours()
else:
content.select_one(‘.navig_zone’).html = «canvas n'est pas supporté»
<\/script>
Source : opennet.ru
