Выпуск Brython 3.9, реализации языка Python для web-браузеров
10 октября 2020 года
Опубликован релиз проекта Brython 3.9 (Browser Python) с реализацией языка программирования Python 3 для выполнения на стороне web-браузера, позволяющей использовать Python вместо JavaScript для разработки скриптов для Web. Код проекта написан на языке Python и распространяется под лицензией BSD. Новый выпуск примечателен обеспечением совместимости с Python 3.9 и обновлением стандартной библиотеки.
Подключив библиотеки brython.js и brython_stdlib.js, web-разработчик может использовать (Архивная копия от 28 сентября 2021 на Wayback Machine) язык 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-движком браузера. Итоговая производительность большинства операций во встраиваемых в web-страницы Python-сценариях близка к производительности CPython. Задержка возникает только на этапе компиляции, но для её устранения предоставляется возможность загрузки предварительно скомпилированного кода, которая применяется для ускорения загрузки стандартной библиотеки.<script type="text/python">import timeimport mathfrom browser import documentimport browser.timercontent = 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>
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.