premiera projektu (Browser Python) z implementacją języka programowania Python 3, umożliwiającego wykonywanie w przeglądarkach internetowych, pozwalającego na użycie Pythona zamiast JavaScriptu do pisania skryptów dla Web. Kod projektu napisany jest w języku Python i na licencji BSD. Nowe wydanie wyróżnia się zapewnieniem zgodności z i aktualizacją standardowej biblioteki.
Podłączając biblioteki i , programista webowy może używać Pythona do definiowania logiki działania witryny po stronie klienta, stosując Pythona zamiast JavaScriptu. Aby włączyć kod Pythona na strony, używa się tagu z typem mime „text/python”. Dozwolone jest zarówno osadzanie kodu na stronie, jak i ładowanie zewnętrznych skryptów (). Z poziomu skryptu zapewniony jest pełny dostęp do elementów i zdarzeń DOM.
Oprócz dostępu do standardowej biblioteki Pythona oferowane są specjalistyczne biblioteki do interakcji z DOM oraz z bibliotekami JavaScript, takimi jak jQuery, D3, Highcharts i Raphael. Obsługiwane jest użycie frameworków CSS Bootstrap3, LESS i SASS.
Wykonywanie kodu Python z bloków <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект oferuje interpreter CPython, skompilowany do asm.js do wykonywania kodu Python w przeglądarce, a implementuje interpreter w JavaScriptie).
Końcowa wydajność większości operacji w osadzonych w stronach internetowych skryptach Pythona do wydajności CPython. Opóźnienie występuje tylko na etapie kompilacji, ale dla jego eliminacji istnieje możliwość załadowania wcześniej skompilowanego kodu w JavaScript, co służy do przyspieszenia ładowania standardowej biblioteki (Brython do tworzenia bibliotek JavaScript na podstawie modułów Pythona).
<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 is not supported"
</script>
Źródło: opennet.ru
