Структура пирамиды

Pyramid - это общая среда разработки веб-приложений с открытым исходным кодом, построенная на Python. Это позволяет разработчику Python с легкостью создавать веб-приложения.

Pyramid поддерживается системой управления корпоративными знаниями KARL (проект Джорджа Сороса).

Установка, запуск и настройка

Как уже говорилось, «фреймворк« начать с малого, закончить крупно, остаться готовым »», Pyramid очень похож на Flask, который требует очень мало усилий для установки и запуска. Фактически, вы поймете, что некоторые из шаблонов похожи на Flask, когда начнете создавать это приложение.

Ниже приведены шаги по созданию среды структуры пирамиды.

  • Сначала создайте каталог проекта. Здесь мы создали каталог с именемpyramidProject (вы можете выбрать любое имя).

  • Затем создайте виртуальную среду, в которой вы установите все зависимости проекта. Здесь мы создали папку виртуальной среды с именемpyramidEnv где установлена ​​пирамида.

  • Затем перейдите в каталог, pyramidEnv и установите пирамиду с pip install pyramid.

Как только все будет сделано, как указано выше, ваша структура каталогов будет такой, как показано ниже -

И версия пирамиды, установленная в системе, приведена ниже -

Основные концепции

Структура пирамиды основана на следующих основных концепциях:

  • Zope (расширяемость, обход, декларативная безопасность) - Pyramid слабо основана на Zope с точки зрения расширяемости, концепции обхода и декларативной безопасности.

  • Pylons(Отправка URL-адресов, непредвзятый взгляд на настойчивость, шаблоны и т. Д.) - Еще одна область, откуда пирамида черпает свою концепцию, - это проект пилонов. У пилонов есть концепция маршрутов, которая вызывает отправку URL-адресов внутри структуры пирамиды, а также у них есть несомненный взгляд на уровень персистентности или шаблонов.

  • Django(Вид, уровень документации) - Pyramid также получает подсказку от Django. То, как мы смотрим, маршрутизируем наш URL и уровень документации очень похожи на Django.

Ниже приведены особенности структуры пирамиды -

  • Это самый быстрый из известных веб-фреймворков Python.

  • Он поддерживает небольшие и большие проекты (зачем переписывать, когда вы перерастаете свой маленький фреймворк).

  • Он поддерживает однофайловые веб-приложения, такие как микрофреймворк.

  • Имеет встроенные сеансы.

  • Он поддерживает события, подобные Plone / Zope.

  • Он обеспечивает управление транзакциями (если вы уже заметили, что мы использовали Zope раньше).

Конфигурация

Конфигурация - это параметры, которые влияют на работу приложения. Существует два способа настройки приложения-пирамиды: императивная конфигурация и декларативная конфигурация.

Конфигурация пирамиды поддерживает -

  • Императивная конфигурация или даже переопределение конфигураций на основе декораторов

  • Обнаружение конфликтов конфигурации (включая более локальное и менее локальное определение)

  • Расширяемость конфигурации (включена из нескольких приложений)

  • Гибкие политики аутентификации и авторизации

  • Программный анализ конфигурации (просмотр текущего состояния маршрутов для создания навигации)

Генерация URL

В пирамиде мы можем генерировать URL-адреса для маршрутов, ресурсов и статических активов. С API генерации URL легко и гибко работать. Создавая URL-адреса с помощью различных API-интерфейсов пирамиды, пользователи могут произвольно изменять конфигурацию, не беспокоясь о разрыве ссылки на любую из ваших веб-страниц.

Короче говоря, URL в пирамиде -

  • поддерживает создание URL-адресов, чтобы разрешить изменения в приложении, которые не будут нарушать ссылки.

  • генерирует URL-адреса статических ресурсов, которые находятся внутри или вне приложения.

  • поддерживает маршруты и обход.

Просмотры

Одна из основных задач пирамиды - найти и вызвать вызываемое представление, когда запрос достигает вашего приложения. Вызываемые объекты просмотра - это фрагменты кода, которые делают что-то интересное в ответ на запрос, сделанный в вашем приложении.

Когда вы сопоставляете свои представления с отправкой URL-адресов или кодом Python, может быть любой вид вызова. Представления могут быть объявлением функции или экземпляром, его можно использовать как представление в пирамиде.

Некоторые важные моменты о просмотрах приведены ниже -

  • Представления генерируются из любого вызываемого.

  • Представления на основе средства визуализации могут просто возвращать словари (не требуется для возврата объекта в стиле вебби).

  • Поддержка нескольких представлений для каждого маршрута (GET, POST, проверка заголовка HTTP и т. Д.).

  • Просмотр адаптеров ответа (когда вы хотите указать, как должны обрабатываться возвращаемые значения представления, а не объекты ответа).

Расширяемость

Pyramid разработан с учетом расширяемости. Таким образом, если разработчик пирамиды учитывает определенные ограничения при создании приложения, третья сторона должна иметь возможность изменять поведение приложения без необходимости изменять его исходный код. Поведение пирамидального приложения, которое подчиняется определенным ограничениям, можно переопределить или расширить без каких-либо изменений. Он разработан для гибкого развертывания в нескольких средах (без синглтонов). Pyramid имеет поддержку промежуточного программного обеспечения «Tweens» (промежуточное программное обеспечение WSGI, но работает в контексте самой Pyramid).

Запуск программы Hello, Pyramid

Самая простая программа, которую мы можем придумать после установки фреймворка пирамиды, чтобы проверить, все ли работает нормально, - это запустить простую программу «Hello, World» или «Hello, Pyramid».

Ниже представлена ​​моя пирамидальная программа «Hello, Pyramid» на порт 8000 -

Приведенный выше простой пример легко выполнить. Сохраните это как app.py (здесь мы дали имя pyramid_helloW.py).

Запуск простейшей программы: -

Далее откройте http://localhost:8000/в браузере, и вы увидите привет, пирамида! Сообщение следующее -

Ниже приводится объяснение приведенного выше кода -

Линия нет. 1-3

В начале файла у нас есть операторы импорта. Первая строка импортирует функцию make_server, которая может создать простой веб-сервер, когда он передается приложению. Вторая и третья строки импортируют конфигурацию и функцию ответа из пирамиды. Эти функции используются для настройки деталей и параметров приложения и ответа на запросы соответственно.

Линия нет. 5-6

Теперь у нас есть определение функции под названием hello_world. Реализуйте код представления, который генерирует ответ. Функция, отвечающая требованиям представления, отвечает за рендеринг текста, который будет передан обратно запрашивающей сущности. В приведенном выше случае функция при вызове использует функцию Response, которую мы импортировали ранее. Это возвращает значение, которое должно быть передано клиенту.

Линия нет. 8

if __name__ == '__main__': Python говорит: «Начать здесь при запуске из командной строки», а не при импорте этого модуля.

Линия нет. 9-11

В строке нет. 9, мы создаем переменную с именем config из объекта, созданного функцией конфигуратора, которую мы импортировали в верхней части программы. Строки 10 и 11 вызывают методы add_route и add_view этого объекта. Этот метод используется для определения представления, которое может использоваться приложением. Как мы видим, мы передаем функцию hello_world, которую мы определили ранее. Именно здесь эта функция фактически включена как представление.

Линия нет. 12–14

Здесь мы фактически создаем приложение WSGI, вызывая метод make_wsgi_app объекта конфигурации. При этом используются атрибуты объекта, такие как добавленное представление, для создания приложения. Затем это приложение передается в функцию make_server, которую мы импортировали, чтобы создать объект, который может запускать веб-сервер для обслуживания нашего приложения. Последняя строка запускает этот сервер.

Наши hello world application- одно из самых простых и легких приложений-пирамид, настроенное «императивно». Это необходимо, потому что при выполнении задач настройки нам доступны все возможности Python.

Подводя итог, Pyramid - это веб-фреймворк на Python с открытым исходным кодом и большим и активным сообществом. Это большое сообщество способствует популяризации и актуальности веб-фреймворка Python. Веб-фреймворк Pyramid упрощает и ускоряет разработку веб-приложений, предоставляя набор надежных функций и инструментов.