izdanje projekta (Browser Python) s implementacijom programskoj jezika Python 3 za izvođenje na strani web preglednika, omogućavajući korištenje Pythona umjesto JavaScript-a za razvoj skripti za web. Kod projekta je napisan na jeziku Python i pod BSD licencom. Novi izdanak ističe se osiguravanjem kompatibilnosti s i ažuriranjem standardne biblioteke.
Povezivanjem biblioteka i , web programer može koristiti Python za definiranje logike rada stranice na strani klijenta, primjenjujući Python umjesto JavaScript-a. Za uključivanje Python koda na stranice koristi se tag s mime-typom „text/python“. Omogućuje se kako ugradnja koda na stranicu, tako i učitavanje vanjskih skripti (). Iz skripte se pruža potpuni pristup elementima i događajima DOM-a.
Osim pristupa standardnoj biblioteci Pythona, dostupne su specijalizirane biblioteke za interakciju s DOM-om i JavaScript bibliotekama poput jQuery, D3, Highcharts i Raphael. Podržava se korištenje CSS okvira Bootstrap3, LESS i SASS.
Izvršavanje Python koda iz blokova <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект nudi za izvođenje Python koda u pregledaču kompajliranog u asm.js interpreter CPython, a implementira interpreter na JavaScript-u).
Konačna izvedba većine operacija u ugrađenim web stranicama Python skriptama izvedbi CPython-a. Kašnjenje se javlja samo tokom faze kompajliranja, ali za njegovo otklanjanje pruža se mogućnost učitavanja prethodno kompajliranog JavaScript koda, što se primjenjuje za ubrzanje učitavanja standardne biblioteke (Brython za izradu JavaScript biblioteka temeljenih na Python modulima).
<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>
Izvor: opennet.ru
