prosjektutgivelse (Browser Python) med implementering av programmeringsspråket Python 3 for utførelse i nettleseren, noe som gjør det mulig å bruke Python i stedet for JavaScript for å utvikle skript for web. Prosjektkoden er skrevet i Python og under BSD-lisens. Den nye utgivelsen er bemerkelsesverdig for å sikre kompatibilitet med og oppdatering av standardbiblioteket.
Ved å koble til bibliotekene og , kan webutvikleren bruke Python til å definere nettstedets logikk på klientsiden, ved å bruke Python i stedet for JavaScript. For å inkludere Python-kode på sidene brukes <script>-taggen med MIME-typen «text/python». Både innbygging av kode på siden og lasting av eksterne skript (<script type=»text/python» src=»test.py»>) er tillatt. Skriptet har full tilgang til DOM-elementer og hendelser.
I tillegg til tilgang til standardbiblioteket i Python tilbys spesialiserte biblioteker for interaksjon med DOM og JavaScript-biblioteker som jQuery, D3, Highcharts og Raphael. Bruk av CSS-rammeverk som Bootstrap3, LESS og SASS støttes.
Utføring av Python-kode fra blokker <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект tilbyr en tolk for Python-kode i nettleseren som er kompilert til asm.js, mens implementerer tolken i JavaScript).
Den endelige ytelsen til de fleste operasjoner i Python-skript innbyggd i web-sider ytelsen til CPython. Forsinkelse oppstår bare på kompileringstrinnet, men for å eliminere dette tilbys muligheten for å laste inn forhåndskompilert JavaScript-kode, som brukes for å akselerere lasting av standardbiblioteket (Brython for å lage JavaScript-biblioteker basert 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
