projektudgivelse (Browser Python) med implementeringen af programmeringssproget Python 3 til kørsel i web-browseren, der gør det muligt at bruge Python i stedet for JavaScript til udvikling af scripts til web. Projektkoden er skrevet i Python og under BSD-licens. Den nye udgivelse er bemærkelsesværdig for at sikre kompatibilitet med og opdateringen af standardbiblioteket.
Ved at tilslutte biblioteker og , kan web-udvikleren bruge Python til at definere logikken i arbejdet på klientsiden af webstedet, hvilket anvender Python i stedet for JavaScript. For at inkludere Python-kode på siderne anvendes tagget med mime-typen «text/python». Både indlejring af kode på siden og indlæsning af eksterne scripts () er tilladt. Fra scriptet er der fuld adgang til DOM-elementer og -begivenheder.
Udover adgangen til Python-standardbiblioteket tilbydes specialiserede biblioteker til interaktion med DOM og JavaScript-biblioteker som jQuery, D3, Highcharts og Raphael. Brug af CSS-frameworks som Bootstrap3, LESS og SASS understøttes.
Kørsel af Python-kode fra blokke <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект tilbyder en fortolker til udførelse af Python-kode i browseren, der er kompileret til asm.js, og implementerer en fortolker i JavaScript).
Den samlede ydeevne af de fleste operationer i indlejrede Python-scripts i web-siderne ydelsen fra CPython. Der opstår kun forsinkelse under kompileringen, men for at afhjælpe dette tilbydes muligheden for at indlæse allerede kompileret JavaScript-kode, som bruges til at fremskynde indlæsningen af standardbiblioteket (Brython til at oprette JavaScript-biblioteker baseret på Python-moduler).
<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>
Kilde: opennet.ru
