projekti väljalaskmine (Browser Python) on Python 3 programmeerimiskeele rakendus, mis võimaldab veebibrauseris töötamist, võimaldades Pythonit kasutada JavaScripti asemel veebiskripti kirjutamiseks. Projekti kood on kirjutatud Pythonis ja BSD litsentsi all. Uus versioon paistab silma ühilduvuse tagamisega ja standardteegi värskendamisega.
Ühendades teegid ja , veebiarendaja saab kasutada Pythonit lehe kliendi logika määratlemiseks, rakendades Pythonit JavaScripti asemel. Python-koodi lisamiseks lehtedele kasutatakse märgendit mime-tüübiga „text/python”. Lubatakse nii koodi sisestamine lehele kui ka väliste skriptide laadimine (). Skriptist on täielik juurdepääs DOM elemendidele ja sündmustele.
Lisaks juurdepääsule Python standardteegile pakutakse eriteeke koosolekul osalemiseks DOM-i ja JavaScripti teekidega, nagu jQuery, D3, Highcharts ja Raphael. Toetatakse CSS-raamistike nagu Bootstrap3, LESS ja SASS kasutamist.
Python-koodi täitmine plokkidena <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект pakub Python-koodi käitamiseks brauseris asm.js-i koostatud CPython tõlgendajat, ja rakendab JavaScriptis tõlgendajat).
Enamik operatsioonide lõpptulemustest sisseehitatud Python-skriptides veebilehtedele CPythoni jõudlusele. Viivitus tekib ainult kompileerimise etapis, kuid selle kõrvaldamiseks on pakutud eelnevalt JavaScriptiks koostatud koodi laadimise võimalust, mis kiirendab standardteegi laadimist (Brython Python moodulitele põhinevate JavaScripti teekide loomiseks).
<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>
Allikas: opennet.ru
