релиz на проекта (Browser Python) с реализация на програмен език Python 3 за изпълнение на страна на уеб браузъра, което позволява използването на Python вместо JavaScript за разработка на скриптове за уеб. Кодът на проекта е написан на езика Python и под лиценция BSD. Новото издание е забележително с осигуряването на съвместимост с и обновление на стандартната библиотека.
Свързвайки библиотеки и , уеб разработчикът може да използва езика Python за определяне на логиката на работа на сайта на клиента, прилагаща Python вместо JavaScript. За вграждане на Python код в страниците се използва таг <script> с mime тип «text/python». Допуска се както вграждане на код в страницата, така и зареждане на външни скриптове (<script type=»text/python» src=»test.py»>). От скрипта се предоставя пълен достъп до елементите и събитията на DOM.
В допълнение до достъпа до стандартната библиотека на Python се предлагат специализирани библиотеки за взаимодействие с DOM и JavaScript библиотеки, като jQuery, D3, Highcharts и Raphael. Поддържа се използването на CSS фреймоворкове Bootstrap3, LESS и SASS.
Изпълнение на Python код от блокове <script> производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект предлага за изпълнение на Python код в браузъра компилиран в asm.js интерпретатор CPython, а реализира интерпретатор на JavaScript).
Крайната производителност на повечето операции във вградени в уеб страници Python скриптове до производителността на CPython. Забавянето възниква само на етапа на компилация, но за неговото отстраняване се предоставя възможност за зареждане на предварително компилиран JavaScript код, който се прилага за ускоряване на зареждането на стандартната библиотека (Brython за създаване на JavaScript библиотеки върху модули на Python).
<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 не се поддържа»
<\/script>
Източник: opennet.ru
