Пыйс
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() | |
Оригинальный автор(ы) | Джеймс Таубер, Google |
---|---|
Разработчик(и) | Люк Лейтон, Энтони Си Райзингер, Кес Бос |
Первоначальный выпуск | март 2007 г |
Стабильная версия | 0.8.1а [1] ![]() |
Репозиторий | |
Написано в | Питон , JavaScript |
Операционная система | Windows , OS X , Linux |
Доступно в | Питон |
Тип | Платформа Ajax , набор инструментов для настольных и веб- виджетов , компилятор , набор виджетов |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | пижама |
Pyjs (ранее Pyjamas до мая 2012 г.) [2] ), — это многофункциональная платформа веб-приложений для разработки клиентских веб-приложений и настольных приложений на Python . Полученные приложения можно запускать в веб-браузере или как отдельные настольные приложения .
Он содержит автономный компилятор Python в JavaScript , инфраструктуру Ajax и набор инструментов для виджетов , и с помощью этих компонентов разработчики могут писать комплексные приложения, которые будут работать во всех основных веб-браузерах, без написания JavaScript. Pyjs — это порт Google Web Toolkit (GWT) с Java на Python . [3]
Разработка
[ редактировать ]Используя pyjs, разработчики могут писать веб-приложения на Python вместо JavaScript . Приложение скомпилировано в JavaScript. Также включена библиотека Ajax и набор виджетов. [4] который обеспечивает доступ к объектной модели документа (DOM) современных веб-браузеров с поддержкой JavaScript. Библиотека Ajax и библиотека наборов виджетов представляют собой гибридную смесь Python и JavaScript. Как и в случае с Google Web Toolkit, pyjs не является его библиотекой и не просто еще одним фреймворком Ajax. Фреймворки Ajax строго ограничены предоставлением заранее подготовленных конкретных функций, написанных почти исключительно на специально разработанном JavaScript. И GWT, и pyjs, являясь компиляторами JavaScript, позволяют разработчику работать на языке, с которым он знаком (Java или Python соответственно), писать свои собственные виджеты либо полностью с нуля, либо на основе существующих доступных виджетов, но при этом по-прежнему ориентирован на весь спектр современных браузеров. Таким образом, pyjs не только предоставляет веб-разработчикам готовую структуру Ajax, но и дает вам свободу создавать свои собственные.
Дизайн
[ редактировать ]Компилятор pyjs написан на языке программирования Python и использует его для компиляции входных данных в JavaScript, обходя абстрактное синтаксическое дерево компилируемой программы. Хотя компилятор является автономным, pyjs в основном используется для веб-разработки, поэтому существует дополнительная инфраструктура для создания веб-приложений.
DOM.py [5] Библиотека моделей — это уровень абстракции — тонкий слой Python поверх фрагментов кода JavaScript, использование которого обеспечивает доступ к полной объектной модели документа целевой платформы браузера. Как и в любом компиляторе, фрагменты JavaScript рассматриваются как встроенный ассемблер .
Кроме того, поверх библиотеки моделей DOM.py имеется дополнительный уровень абстракции ui.py, [6] который предоставляет наиболее полезный уровень для веб-разработчиков: полный набор виджетов , с которыми будут знакомы разработчики настольных приложений. В настоящее время список доступных виджетов представляет собой смесь полного набора виджетов, доступных в Google Web Toolkit 1.2, а также еще нескольких, перенесенных из GWT 1.5.
Компоненты
[ редактировать ]Основные компоненты Pyjs включают в себя:
- pyjs Компилятор Python-JavaScript
- Переводит язык программирования Python в JavaScript.
- Встроенная и стандартная библиотека эмуляции Python
- Реализации JavaScript часто используемых модулей, встроенных функций и классов в стандартной библиотеке времени выполнения Python (таких как строки, списки, словари, кортежи, наборы, getattr, карта, фильтр, диапазон и т. д.; базовая обработка исключений, базовая дата-время и базовый математический модуль).
- DOM-библиотека pyjs [5]
- браузера Модули для управления DOM .
- модуль веб-интерфейса pyjs [6]
- Модуль для создания виджетов , как если бы веб-браузер был движком виджетов на рабочем столе .
- Порты рабочего стола pyjs
- Поддержка запуска приложений pyjs на чистом Python в MSHTML (Trident), Gecko ( XULRunner ) или WebKit . Pyjs Desktop концептуально близок к «размещенному» режиму GWT, за исключением того, что приложения можно развертывать в реальном времени под pyjs Desktop, а не использовать исключительно в качестве инструмента отладки.
pyjs для рабочего стола
[ редактировать ]Библиотека наборов виджетов [4] который поставляется с pyjs, настолько похож на PyQt и PyGTK , что был создан порт pyjs для запуска приложений pyjs на рабочем столе, который называется pyjs Desktop (ранее PyjamasDesktop [7] до мая 2012 г. и первоначально размещался отдельно до версии 0.6. [8] ). В качестве базовой технологии проект использует Webkit , XULRunner или MSHTML , и именно с помощью этих браузерных движков pyjs манипулирует моделью DOM приложения. Вместе pyjs и pyjs Desktop позволяют писать кросс-платформенные, кросс-десктопные, кросс-браузерные и кросс-виджетные приложения, которые работают в Интернете и на рабочем столе. [9] [10]
Ссылки
[ редактировать ]- ^ «Выпуск 0.8.1а» . 9 мая 2012 года . Проверено 22 июля 2018 г.
- ^ Инфраструктура, конечная точка, изменения процессов , разъяснения Лекса в списке рассылки pyjamas-dev (3 мая 2012 г.)
- ^ pyjs README
- ^ Перейти обратно: а б Иерархия классов модулей пользовательского интерфейса
- ^ Перейти обратно: а б DOM-модуль
- ^ Перейти обратно: а б модуль пользовательского интерфейса
- ^ История PyjamasDesktop , Python Wiki
- ^ «Пижамный рабочий стол» .
- ^ Пижамы - Приложения Python для настольных компьютеров и Интернета , Люк Кеннет Кассон Лейтон (30 августа 2008 г.)
- ^ Программирование в пижаме: приложения для настольных компьютеров и Интернета Люк Кеннет Кассон Лейтон (7 ноября 2008 г.)