피라미드 프레임 워크

Pyramid는 Python으로 구축 된 일반적인 오픈 소스 웹 애플리케이션 개발 프레임 워크입니다. 파이썬 개발자는 웹 애플리케이션을 쉽게 만들 수 있습니다.

Pyramid는 엔터프라이즈 지식 관리 시스템 KARL (George Soros 프로젝트)의 지원을받습니다.

설치, 시작 및 구성

"작게 시작하고, 크게 끝내고, 완성 된 프레임 워크를 유지하십시오"라고 설명했듯이 Pyramid는 설치 및 실행에 거의 노력이 들지 않는 Flask와 매우 유사합니다. 실제로이 애플리케이션을 빌드하기 시작하면 일부 패턴이 Flask와 유사하다는 것을 알게 될 것입니다.

다음은 피라미드 프레임 워크 환경을 만드는 단계입니다.

  • 먼저 프로젝트 디렉토리를 만듭니다. 여기에서 우리는pyramidProject (원하는 이름을 선택할 수 있습니다).

  • 다음으로 모든 프로젝트 특정 종속성을 설치할 가상 환경을 만듭니다. 여기에서 가상 환경 폴더를 만들었습니다.pyramidEnv 피라미드가 설치된 곳.

  • 그런 다음 디렉토리로 이동하여 pyramidEnv 피라미드를 설치하십시오 pip install pyramid.

위에서 언급 한대로 모든 작업이 완료되면 디렉토리 구조는 다음과 같습니다.

그리고 시스템에 설치된 피라미드 버전은 다음과 같습니다.

핵심 개념

피라미드 프레임 워크는 아래의 핵심 개념을 기반으로합니다.

  • Zope (확장 성, 순회, 선언적 보안)-Pyramid는 확장 성, 순회 개념 및 선언적 보안 측면에서 Zope를 기반으로합니다.

  • Pylons(URL 디스패치, 지속성, 템플릿 등에 대한 의견이없는 관점)-피라미드가 개념을 그리는 또 다른 영역은 pylons 프로젝트입니다. Pylons는 피라미드 프레임 워크 내에서 URL 디스패치를 ​​호출하는 경로 개념을 가지고 있으며 지속성 레이어 또는 템플릿에 대해 의견이없는 뷰를 가지고 있습니다.

  • Django(보기, 문서 수준) − Pyramid는 Django에서도 힌트를 얻습니다. 우리가 우리의 관점을 취하고, URL을 라우팅하고, 문서 수준을 지정하는 방식은 매우 Django 방식입니다.

다음은 피라미드 프레임 워크의 기능입니다-

  • 가장 빠르게 알려진 Python 웹 프레임 워크입니다.

  • 소규모 및 대규모 프로젝트를 지원합니다 (작은 프레임 워크를 초과 할 때 다시 작성해야하는 이유).

  • 마이크로 프레임웍 스와 같은 단일 파일 웹앱을 지원합니다.

  • 기본 제공 세션이 있습니다.

  • Plone / Zope와 유사한 이벤트를 지원합니다.

  • 트랜잭션 관리를 제공합니다 (이전에 Zope를 사용한 적이있는 경우).

구성

구성은 응용 프로그램 작동에 영향을주는 설정입니다. 피라미드 애플리케이션을 구성하는 방법에는 명령형 구성과 선언적 구성의 두 가지가 있습니다.

피라미드 구성 지원-

  • 명령형 구성 또는 데코레이터 기반 구성 재정의

  • 구성 충돌 감지 (더 많은 로컬 결정과 적은 로컬 결정 포함)

  • 구성 확장 성 (여러 앱에서 포함)

  • 유연한 인증 및 권한 부여 정책

  • 프로그래밍 방식의 구성 검사 (탐색을 생성하기 위해 경로의 현재 상태보기)

URL 생성

피라미드에서는 경로, 리소스 및 정적 자산에 대한 URL을 생성 할 수 있습니다. URL 생성 API로 작업하는 것은 쉽고 유연합니다. 피라미드의 다양한 API를 통해 URL을 생성함으로써 사용자는 웹 페이지와의 링크가 끊어 질 염려없이 임의로 구성을 변경할 수 있습니다.

간단히 말해서 피라미드의 URL-

  • 링크를 끊지 않는 앱을 ​​변경할 수 있도록 URL 생성을 지원합니다.

  • 애플리케이션 내부 또는 외부에있는 정적 리소스에 대한 URL을 생성합니다.

  • Routes 및 Traversal을 지원합니다.

견해

피라미드의 주요 작업 중 하나는 요청이 애플리케이션에 도달 할 때 호출 가능한 뷰를 찾아 호출하는 것입니다. 뷰 콜 러블은 애플리케이션의 요청에 대한 응답으로 흥미로운 작업을 수행하는 코드입니다.

뷰를 URL 디스패치 또는 파이썬 코드에 매핑 할 때 모든 종류의 호출이있을 수 있습니다. 뷰는 함수 선언 또는 인스턴스 일 수 있으며 피라미드에서 뷰로 사용할 수 있습니다.

보기에 대한 몇 가지 중요한 사항은 다음과 같습니다.

  • 모든 콜 러블에서 뷰가 생성됩니다.

  • 렌더러 기반 뷰는 단순히 사전을 반환 할 수 있습니다 (webby 스타일 객체를 반환 할 필요가 없음).

  • 경로당 여러보기를 지원합니다 (GET vs. POST vs. HTTP 헤더 검사 등).

  • 응답 어댑터를 봅니다 (보기 반환 값을 처리해야하는 방법과 응답 개체를 비교하려는 경우).

확장 성

Pyramid는 확장 성을 염두에두고 설계되었습니다. 따라서 피라미드 개발자가 애플리케이션을 빌드하는 동안 특정 제약 조건을 염두에두고 있다면 제 3자가 소스 코드를 수정할 필요없이 애플리케이션의 동작을 변경할 수 있어야합니다. 특정 제약 조건을 따르는 피라미드 응용 프로그램의 동작은 수정없이 재정의하거나 확장 할 수 있습니다. 여러 환경에 유연하게 배포 할 수 있도록 설계되었습니다 (싱글 톤 없음). Pyramid는 "Tweens"미들웨어를 지원합니다 (WSGI 미들웨어이지만 Pyramid 자체의 컨텍스트에서 실행 됨).

Hello, Pyramid 프로그램 실행

모든 것이 제대로 작동하는지 확인하기 위해 피라미드 프레임 워크를 설치 한 후 생각할 수있는 가장 간단한 프로그램은 간단한 "Hello, World"또는 "Hello, Pyramid"프로그램을 실행하는 것입니다.

아래는 8000 번 포트 번호의 피라미드“Hello, Pyramid”프로그램입니다.

위의 간단한 예는 실행하기 쉽습니다. 이 파일을 app.py로 저장합니다 (여기서는 pyramid_helloW.py라는 이름을 지정했습니다).

가장 간단한 프로그램 실행 : −

다음으로 http://localhost:8000/브라우저에서 Hello, Pyramid! 다음과 같은 메시지-

다음은 위의 코드에 대한 설명입니다.

라인 번호. 1-3

파일 헤드에는 import 문이 있습니다. 첫 번째 줄은 응용 프로그램에 전달 될 때 간단한 웹 서버를 만들 수있는 make_server 함수를 가져옵니다. 두 번째 및 세 번째 줄은 피라미드에서 구성 및 응답 함수를 가져옵니다. 이러한 기능은 애플리케이션에 대한 세부 정보를 구성하고 매개 변수를 설정하고 요청에 각각 응답하는 데 사용됩니다.

라인 번호. 5-6

이제 우리는 hello_world. 응답을 생성하는보기 코드를 구현하십시오. 뷰의 요구 사항을 충족하는 함수는 요청 엔터티로 다시 전달 될 텍스트를 렌더링합니다. 위의 경우 함수가 호출되면 이전에 가져온 Response 함수를 사용합니다. 이것은 클라이언트에 제공되어야하는 값을 다시 전달합니다.

라인 번호. 8

if __name__ == '__main__': 파이썬은이 모듈을 가져올 때가 아니라 "명령 줄에서 실행할 때 여기에서 시작"이라고 말합니다.

라인 번호. 9-11

라인 번호. 9에서는 프로그램 상단에서 가져온 configurator 함수로 생성 한 객체에서 config라는 변수를 생성합니다. 10 행과 11 행은이 객체의 add_route 및 add_view 메소드를 호출합니다. 이 메소드는 애플리케이션에서 사용할 수있는보기를 정의하는 데 사용됩니다. 보시다시피 앞서 정의한 hello_world 함수를 전달합니다. 이 기능이 실제로 뷰로 통합되는 곳입니다.

라인 번호. 12-14

여기서는 실제로 config 개체의 make_wsgi_app 메서드를 호출하여 WSGI 응용 프로그램을 만듭니다. 이것은 우리가 추가 한 뷰와 같은 객체의 속성을 사용하여 애플리케이션을 생성합니다. 그런 다음이 애플리케이션은 애플리케이션을 제공하기 위해 웹 서버를 시작할 수있는 객체를 생성하기 위해 가져온 make_server 함수로 전달됩니다. 마지막 줄은이 서버를 시작합니다.

우리의 hello world application"필수적으로"구성된 가장 간단하고 쉬운 피라미드 응용 프로그램 중 하나입니다. 구성 작업을 수행 할 때 Python의 모든 기능을 사용할 수 있기 때문에 필수적입니다.

요약하면 Pyramid는 크고 활동적인 커뮤니티가있는 오픈 소스 Python 웹 프레임 워크입니다. 이 대규모 커뮤니티는 Python 웹 프레임 워크를 대중적이고 관련성있게 만드는 데 기여합니다. Pyramid 웹 프레임 워크는 강력한 기능 및 도구 세트를 제공하여 웹 애플리케이션 개발을 단순화하고 가속화합니다.