Вышел новый релиз «Python для браузеров», встречаем Brython 3.9

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Разработчики проекта Brython Python выпустили новый релиз, Brython 3.9. Сам проект позиционируется, как «Python для браузера». Он основан на Python 3 и выполняется на стороне браузера, причем для разработки веб-скриптов вместо JavaScript используется Python.

Код проекта написан на Python и распространяется под лицензией BSD. Новый релиз совместим с Python 3.9, плюс обновлена стандартная библиотека.

Для того, чтобы определять логику работы сайта на стороне клиента, используя Python вместо JS, веб-разработчику необходимо подключить две библиотеки, brython.js и brython_stdlib.js. Для подключения Python-кода на странице, используется тег script с mime-типом text/python.

Со стороны Brython разрешено как встраивать код на страницу, так и загружать внешние скрипты. Пример:

<script type="text/python" src="test.py">

Из скрипта предоставляется полный доступ к элементам и событиям DOM. Кроме доступа к стандартной библиотеке Python есть и специализированные библиотеки для работы с DOM и JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael.

Поддерживается использование CSS-фреймворков JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael.

Python-блоки выполняются из блоков script через предварительную компиляцию кода, которая выполняется обработчиком Brython после загрузки страницы. Компиляция запускается при помощи вызова функции brython(), например через добавление body onload="brython()".

На основе кода Python формируется представление на языке JS, затем оно выполняется штатным JavaScript-движком браузера.

Что касается производительности, то большинство операций во встраиваемых в web-страницы Python-сценариях близка к производительности Cpython. Единственный момент, когда возникает задержка — это этап компиляции. Но задержку можно устранить при помощи предварительно скомпилированного в JavaScript кода, которая используется для ускорения загрузки стандартной библиотеки.

<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>

Подробнее о запуске Brython


Для того, чтобы «Python для браузера» мог как транслировать, так и исполнять Python-код подобно JS-коду, требуется вызывать Brython в момент загрузки тела документа.

<body onload="brython()">

В этом случае тег ищет теги script с типом text/python и запускает код. Для того, чтобы использовать API для работы с вебом, разработчики Brython реализовали простое решение — импорт API, аналогичный импорту любого иного модуля на Python:

from browser import document, html, window

Brython справляется со всем сам, так что дополнительные команды выполнять не нужно.

Важный момент — для работы с Brython необходим опыт работы с JavaScript, хотя бы базовый уровень. Без этого разобраться будет довольно сложно.

Источник: https://habr.com/ru/company/selectel/blog/522968/


Интересные статьи

Интересные статьи

В 2020 году многие компании переводили сотрудников на удалёнку. Далеко не всегда они оформляли это юридически правильно. Одно из типичных нарушений - отправить работника ...
Компания Amazon объявила о финальном релизе Bottlerocket — специализированного дистрибутива для запуска контейнеров и эффективного управления ими. Bottlerocket (кстати, так наз...
Графика в начале 2000-х была совершенно иной, но поверьте мне — Warcraft III стал хитом, оставившим в игровой индустрии серьёзное наследие. Немногие игровые миры оставили такой большой след,...
Вам приходилось сталкиваться с ситуацией, когда сайт или портал Битрикс24 недоступен, потому что на диске неожиданно закончилось место? Да, последний бэкап съел все место на диске в самый неподходящий...
Эта публикация написана после неоднократных обращений как клиентов, так и (к горести моей) партнеров. Темы обращений были разные, но причиной в итоге оказывался один и тот же сценарий, реализу...