Русский
Русский
English
Статистика
Реклама

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


Код Brython Python (на скриншоте версия 3.8.8)

Разработчики проекта 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 timeimport math from browser import documentimport 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, хотя бы базовый уровень. Без этого разобраться будет довольно сложно.

Источник: habr.com
К списку статей
Опубликовано: 11.10.2020 20:14:29
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании selectel

Python

Программирование

Софт

Brython

Языки программирования

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru