izdanje projekta (Browser Python) s implementacijom programskog jezika Python 3 za izvođenje na strani web preglednika, omogućava korišćenje Pythona umesto JavaScript-a za razvoj skripti za web. Kod projekta je napisan na jeziku Python i pod BSD licencom. Novo izdanje se ističe obezbeđivanjem kompatibilnosti sa i ažuriranjem standardne biblioteke.
Povezivanjem biblioteka in , web programer može koristiti jezik Python za definisanje logike rada sajta na strani klijenta, primenjujući Python umesto JavaScript-a. Za uključivanje Python koda na stranice koristi se tag sa mime tipom "text/python". Dozvoljeno je kako ugradnja koda na stranicu, tako i učitavanje spoljašnjih skripti (). Iz skripte se pruža potpun pristup elementima i događajima DOM-a.
Osim pristupa standardnoj biblioteci Pythona, nude se specijalizovane biblioteke za interakciju sa DOM-om i JavaScript bibliotekama kao što su jQuery, D3, Highcharts i Raphael. Podržava se korišćenje 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 pretraživaču kompajliranog u asm.js interpreter CPython, a implementira interpreter na JavaScript-u).
Konačna performansa većine operacija u umetnutim Python skriptama na web stranicama performansi CPython. Odloženo vreme se javlja samo tokom faze prevođenja, ali kako bi se to otklonilo, obezbeđena je mogućnost učitavanja unapred kompajliranog JavaScript koda, što se primenjuje za ubrzanje učitavanja standardne biblioteke (Brython za kreiranje JavaScript biblioteka na bazi Python modula).
<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
