uvolnění projektu (Browser Python) s implementací programovacího jazyka Python 3 pro běh na straně webového prohlížeče, který umožňuje používat Python místo JavaScriptu pro vývoj skriptů pro web. Kód projektu je napsán v jazyce Python a je pod licencí BSD. Nová verze se vyznačuje zajištěním kompatibility s a aktualizací standardní knihovny.
Připojením knihoven a , webový vývojář může použít jazyk Python pro definování logiky fungování webu na straně klienta, a to použitím Pythonu místo JavaScriptu. Pro vložení Python kódu na stránky se používá tag s mime-typem „text/python“. Je povoleno jak vkládání kódu přímo na stránku, tak i načítání externích skriptů (). Ze skriptu je poskytován plný přístup k elementům a událostem DOM.
Kromě přístupu ke standardní knihovně Python jsou nabízeny specializované knihovny pro interakci s DOM a JavaScriptovými knihovnami, jako jsou jQuery, D3, Highcharts a Raphael. Podporuje se použití CSS frameworků jako Bootstrap3, LESS a SASS.
Spuštění kódu Python z bloků <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект nabízí pro vykonání Python kódu v prohlížeči interpret CPython, který je zkompilován do asm.js, a realizuje interpreter v JavaScriptu).
Konečná výkonnost většiny operací ve webových Python skriptech výkonnosti CPython. Zpoždění vzniká pouze v době kompilace, ale pro jeho odstranění je k dispozici možnost načítání předkompilovaného JavaScript kódu, což se používá k urychlení načítání standardní knihovny (Brython pro vytváření JavaScriptových knihoven na základě modulů 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 is not supported"
</script>
Zdroj: opennet.ru
