Учебники

Каркас пирамиды

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

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

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

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

Ниже приведены шаги по созданию среды фреймворка пирамиды —

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

  • Затем создайте виртуальную среду, в которую вы будете устанавливать все специфичные для проекта зависимости. Здесь мы создали папку виртуальной среды с именем pyramidEnv, в которой установлена ​​Pyramid.

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

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

Затем создайте виртуальную среду, в которую вы будете устанавливать все специфичные для проекта зависимости. Здесь мы создали папку виртуальной среды с именем pyramidEnv, в которой установлена ​​Pyramid.

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

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

Структура каталогов

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

Версия пирамиды

Основные понятия

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

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

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

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

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

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

Джанго (Вид, уровень документации) — Пирамида также получает подсказку от Джанго. То, как мы воспринимаем наше мнение, перенаправляет наш URL и уровень документации очень похож на Django.

Ниже приведены особенности фреймворка Pyramid —

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

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

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

  • Он имеет встроенные сессии.

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

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

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

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

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

Он имеет встроенные сессии.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Генерация URL

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

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

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

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

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

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

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

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

Просмотры

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

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

Некоторые важные моменты о взглядах приведены ниже —

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

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

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

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

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

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

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

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

растяжимость

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

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

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

Ниже моя пирамида «Привет, пирамида», программа с номером порта 8000 —

Программа пирамид

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

Запуск самой простой программы: —

Запущенная программа

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

Привет пирамида

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

Строка № 1-3

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

Строка № 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 объекта config. При этом используются атрибуты объекта, такие как добавленное нами представление, для создания приложения. Затем это приложение передается импортированной нами функции make_server для создания объекта, который может запускать веб-сервер для обслуживания нашего приложения. Последняя строка запускает этот сервер.

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

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