> 기술 주변기기 > IT산업 > 파이썬 웹 응용 프로그램 : WSGI의 기본 사항

파이썬 웹 응용 프로그램 : WSGI의 기본 사항

Joseph Gordon-Levitt
풀어 주다: 2025-02-18 11:40:08
원래의
577명이 탐색했습니다.

파이썬 웹 응용 프로그램 : WSGI의 기본 사항 키 테이크 아웃

WSGI 또는 웹 서버 게이트웨이 인터페이스는 모든 Python 웹 프레임 워크를 밑줄로하여 다른 웹 서버와 애플리케이션 프레임 워크 간의 상호 작용을 허용하는 웹 서버에 공통 사양을 제공합니다. WSGI 응용 프로그램은 두 가지 인수, Environ (요청 데이터가 포함 된 Python Dict)과 START_FN (호출 가능)의 두 가지 인수를 수락 해야하는 파이썬 호출 가능입니다. 응용 프로그램은 상태 코드와 헤더 목록의 두 인수와 함께 start_fn을 호출하고 응답 본문에 바이트를 포함하는 반복 가능한 것을 반환해야합니다. 미들웨어는 미들웨어와 핸들러가 서로를 알거나 돌볼 필요가없는 WSGI 앱의 기능을 확장하는 데 사용될 수 있습니다. 이렇게하면 로깅 또는 오류 처리와 같은 기능을 쉽게 추가 할 수 있습니다.

WSGI 앱은 다양한 방식으로 제공 될 수 있으며 Gunicorn과 UWSGI는 두 가지 인기있는 옵션입니다. 정적 자산을 제공하기 위해 Nginx와 같은 것을 설정하는 것이 좋습니다.

    아래에는 Django, Flask, Bottle 및 기타 모든 Python Web Framework 아래에는 Web Server Gateway 인터페이스 또는 WSGI가 있습니다. WSGI는 다른 웹 서버와 응용 프로그램 프레임 워크가 공통 API를 기반으로 상호 작용할 수있는 웹 서버의 공통 사양 인 Java에 대한 서블릿을 Python에 사용하는 것입니다. 그러나 대부분의 것들과 마찬가지로 파이썬 버전은 상당히 단순합니다.
  • WSGI는 PEP 3333에 정의되어 있습니다.이 빠른 소개 후 더 많은 정보를 원할 경우 참조로 읽어 보시기 바랍니다. 이 기사는 응용 프로그램 개발자의 관점에서 WSGI 사양을 소개하고 WSGI와 직접 작업하여 응용 프로그램을 작성하는 방법을 보여줍니다 (원하는 경우). 첫 번째 wsgi 앱
  • 가장 기본적인 파이썬 웹 앱은 다음과 같습니다
  • 그게 다야! 전체 파일. app.py를 호출하고 WSGI 호환 서버로 실행하면 200 상태의 Hello World 응답이 나타납니다. 이를 위해 Gunicorn을 사용할 수 있습니다. PIP (PIP 설치 Gunicorn)를 통해 설치하고 Gunicorn App : App로 실행하십시오. 이 명령은 Gunicorn에게 앱 모듈의 앱 변수에서 WSGI 호출을 할 수 있도록합니다. 지금, 당신은 꽤 흥분해야합니다. 실행중인 애플리케이션을 위해 단 3 줄? 그것은 일종의 기록이어야합니다 (mod_php가 부정 행위를하기 때문에 PHP를 제외하고). 나는 당신이 더 많은 것을 알기 위해 RAR을 할 것이라고 확신합니다.
  • 그래서 WSGI 애플리케이션의 필수 부분은 무엇입니까?
    • wsgi 응용 프로그램은 함수, 클래스 또는 __call__ 메소드가있는 클래스 인스턴스와 같은 python
    • callable 입니다. 응용 프로그램 호출 가능은 두 가지 인수를 받아야합니다. Environ, 요청 데이터를 포함하는 Python Dict, START_FN 자체는 호출 가능입니다. 응용 프로그램은 두 인수와 함께 start_fn을 호출해야합니다. 응용 프로그램은 응답 본문의 바이트를 포함하는 반복 가능한 덩어리를 편리하고 스트리밍 가능한 청크로 반환합니다.이 경우 "Hello, World!"만 포함하는 문자열 목록입니다. (앱이 클래스 인 경우 __iter__ 메소드에서 수행 할 수 있습니다.)
    • 예를 들어 다음 두 예제는 첫 번째 예와 같습니다.
    • 당신은 이미이 정보를 사용할 수있는 방법을 생각하고 있을지 모르지만 아마도 가장 관련성이 높은 것은 중간 전쟁을 쓰는 것입니다.
    • . 재즈를 위로
    • 중간wares는 WSGI 앱의 기능을 쉽게 확장하는 방법입니다. 호출 가능 만 제공하면 다른 기능으로 마무리 할 수는 있지만 제기 할 수 있습니다.
    • . 예를 들어 Environ의 내용을 조사하고 싶다고 가정 해 봅시다. 이 예에서와 같이 다음과 같이 미들웨어를 쉽게 만들 수 있습니다.
    • <_> 여기, log_environ은 함수를 반환하는 함수이며, 원래 콜백으로 연기하기 전에 Environ 논쟁을 인쇄합니다.
    . 이런 식으로 중간 전쟁을 쓰는 장점은 미들웨어와 핸들러가 서로를 알거나 돌볼 필요가 없다는 것입니다. 플라스크 앱은 WSGI 앱이므로 로그 _environ을 플라스크 애플리케이션으로 쉽게 볼 수 있습니다. 몇 가지 다른 유용한 미들웨어 아이디어 :

    파일의 바닥에 큰 피라미드를 만들고 싶지 않으면 한 번에 많은 미들웨어를 적용하기 위해 감소를 사용할 수 있습니다.

    start_fn 인수를 활용하여 응답을 수정하는 미들웨어를 작성할 수도 있습니다. 다음은 컨텐츠 유형 헤더가 텍스트/일반인 경우 출력을 되돌리는 미들웨어입니다.
    <span>def app(environ, start_fn):
    </span>    start_fn<span>('200 OK', [('Content-Type', 'text/plain')])
    </span>    <span>return ["Hello World!\n"]
    </span>
    로그인 후 복사
    start_fn의 분리와 응답 덕분에 조금 더 엉키었지만 여전히 완벽하게 실행 가능합니다.
    <span>class app(object):
    </span>
        <span>def __init__(self, environ, start_fn):
    </span>        self<span>.environ = environ
    </span>        self<span>.start_fn = start_fn
    </span>
        <span>def __iter__(self):
    </span>        self<span>.start_fn('200 OK', [('Content-Type', 'text/plain')])
    </span>        <span>yield "Hello World!\n"
    </span>
    로그인 후 복사
    또한 wsgi를 엄격하게 사양 준수하려면 응답에 대한

    닫기

    메소드를 점검하고 참석 한 경우 호출해야합니다. 레거시 WSGI 애플리케이션은 호출 처리시 반복 대신

    write

    기능을 반환 할 수 있습니다. 미들웨어가 이전 애플리케이션을 지원하도록하려면이 사례를 처리해야 할 수도 있습니다.

    일단 Raw WSGI로 연주를 시작하면 Python이 왜 수십 개의 웹 프레임 워크를 가지고 있는지 이해하기 시작합니다. WSGI는 처음부터 시작하는 것을 매우 간단하게 만듭니다. 예를 들어, 라우팅 문제를 고려할 수 있습니다.

    wsgi와 직접 작업하는 것은 이상으로 라이브러리를 조립하는 유연성을 즐기면 좋을 수 있습니다.
      템플릿 라이브러리 : 원하는 템플릿 라이브러리 (예 : Jinja2, Pystashe)에 렌더링 된 템플릿을 핸들러에서 반환하십시오! . 경로 나 Werkzeug의 라우팅과 같은 라이브러리로 라우팅을 도와줍니다. 실제로 wsgi에 대한 명확한 빛의 추상화를 사용하려면 Werkzeug를 살펴보십시오. . 플라스크 또는 이와 유사한 데이터베이스/마이그레이션 라이브러리를 사용하십시오.
    • 물론 비 전문화 된 응용 프로그램의 경우 에지 케이스가 올바르게 처리되고 무엇이 처리되지 않도록 프레임 워크를 사용하고 싶을 것입니다.
    • . 그러나 서버는 어떻습니까? WSGI 앱을 제공하는 방법에는 여러 가지가 있습니다. 우리는 이미 Gunicorn에 대해 이야기했습니다. UWSGI는 또 다른 훌륭한 옵션입니다. 정적 자산을 제공하기 위해 Nginx와 같은 것을 설정하고 확실한 출발점이 있어야합니다.
    • . 그리고 그게 전부입니다! 파이썬 웹 응용 프로그램에 대한 자주 묻는 질문 (FAQ) 및 WSGI Python Web Applications에서 WSGI의 역할은 무엇입니까?
    • WSGI 또는 Web Server Gateway 인터페이스는 웹 서버와 웹 응용 프로그램 간의 표준 인터페이스입니다. 애플리케이션과 웹 서버가 서로 통신하고 요청을 보낼 수 있으므로 Python Web Applications에서 중요한 역할을합니다. WSGI는 브리지 역할을하여 웹 서버가 웹 브라우저와 같은 클라이언트의 요청을 웹 응용 프로그램으로 전달할 수있게합니다. 그런 다음 애플리케이션은 요청을 처리하고 웹 서버를 통해 클라이언트에게 응답을 보냅니다.
    WSGI는 Python 웹 응용 프로그램에서 어떻게 작동합니까? WSGI는 공통 인터페이스를 정의하여 작동합니다. 웹 서버는 웹 응용 프로그램과 통신합니다. 클라이언트가 요청을 웹 서버로 보내면 서버는 WSGI 인터페이스를 사용하여 해당 요청을 웹 응용 프로그램으로 전달합니다. 응용 프로그램은 요청을 처리하고 응답을 반환하고 서버가 클라이언트로 다시 보냅니다. 이 프로세스는 특정 구현에 관계없이 웹 서버 및 애플리케이션이 상호 작용할 수있는 일관되고 안정적인 방법을 허용합니다.

    Python에 대한 인기있는 WSGI 서버는 무엇입니까?

    몇 가지 인기있는 WSGI 서버가 있습니다. 각각 고유 한 강점과 약점을 가진 Python에 사용할 수 있습니다. 가장 일반적으로 사용되는 것 중 일부는 Gunicorn, UWSGI 및 MOD_WSGI를 포함합니다. Gunicorn은 단순성과 사용 편의성으로 유명하며 UWSGI는 속도와 효율성으로 칭찬을받습니다. 반면에 mod_wsgi는 Apache 서버를위한 모듈이며 종종 엔터프라이즈 환경에서 사용됩니다. wsgi를 사용하여 Python 웹 응용 프로그램을 배포하는 방법?

    WSGI를 사용하여 Python 웹 응용 프로그램을 배포하려면 여러 단계가 포함됩니다. 먼저 Gunicorn 또는 UWSGI와 같은 WSGI 서버를 설치해야합니다. 다음으로 WSGI 서버를 응용 프로그램에 대한 요청을 처리하기위한 프록시로 사용하도록 웹 서버를 구성해야합니다. 여기에는 필요한 WSGI 설정을 포함하도록 서버의 구성 파일을 수정하는 것이 포함됩니다. 마지막으로 WSGI 서버를 시작하여 응용 프로그램의 WSGI 파일을 가리켜 야합니다.

    DJANGO와 함께 WSGI를 사용할 수 있습니까?

    예, Django와 함께 WSGI를 사용할 수 있습니다. 실제로 Django에는 Django 프로젝트를 배포하는 데 사용할 수있는 내장 WSGI 응용 프로그램이 제공됩니다. Django WSGI 응용 프로그램은 Django 프로젝트와 웹 서버 사이의 브리지 역할을하여 요청 및 응답을 전달하고 교환 할 수 있습니다.

    WSGI와 ASGI의 차이점은 무엇입니까?

    WSGI와 WSGI와 WSGI. ASGI는 모두 Python 웹 응용 프로그램의 인터페이스이지만 다른 목적을 제공합니다. WSGI는 웹 서버와 웹 애플리케이션 간의 통신을 허용하는 동기식 인터페이스입니다. ASGI 또는 비동기 서버 게이트웨이 인터페이스는 비동기 작업을 지원하는 WSGI의 확장입니다. 즉, ASGI를 사용하면 응용 프로그램이 차단하지 않고 동시에 여러 요청을 처리 할 수있어 실시간 애플리케이션에 더 효율적입니다. Python에서 WSGI 애플리케이션을 만드는 방법은 무엇입니까?

    Python에서 WSGI 애플리케이션을 작성하려면 환경 사전과 START_RESPONSE 호출이라는 두 가지 인수를 받아들이는 기능을 정의해야합니다. 환경 사전에는 들어오는 요청에 대한 정보가 포함되어 있으며 start_response 호출은 요청에 대한 응답을 시작하는 데 사용됩니다. 귀하의 기능은 응답의 본문을 생성하는 반복 가능한 반환을 반환해야합니다.

    Python 웹 응용 프로그램에서 WSGI를 사용하면 어떤 이점이 있습니까?

    Python 웹 애플리케이션에서 WSGI를 사용하면 몇 가지 이점이 있습니다. 먼저 웹 서버 및 응용 프로그램에 대한 표준 인터페이스를 제공하여 Python 웹 응용 프로그램을보다 쉽게 ​​개발하고 배포 할 수 있습니다. 둘째, 다양한 WSGI 호환 서버 및 애플리케이션 중에서 선택할 수 있으므로 유연성이 향상됩니다. 마지막으로, 다른 서버와 미들웨어와 함께 동일한 WSGI 애플리케이션을 사용할 수 있으므로 코드 재사용 성을 촉진합니다.

    플라스크와 함께 WSGI를 사용할 수 있습니까?

    예, 플라스크와 함께 WSGI를 사용할 수 있습니다. 실제로 플라스크 응용 프로그램은 기본적으로 WSGI 응용 프로그램입니다. 플라스크 애플리케이션을 만들 때 실제로 플라스크 프레임 워크가 들어오는 요청을 처리하고 응답을 보내는 데 사용할 WSGI 응용 프로그램을 작성합니다. wsgi 미들웨어 란 무엇입니까?

    WSGI 미들웨어는 WSGI 서버와 WSGI 애플리케이션 사이에있는 구성 요소입니다. 응용 프로그램에 도달하기 전에 요청을 처리 할 수 ​​있으며 클라이언트로 돌아 가기 전에 응답에 응답 할 수 있습니다. 미들웨어는 세션 관리, URL 라우팅 및 인증과 같은 다양한 기능을 구현하는 데 사용될 수 있습니다.

위 내용은 파이썬 웹 응용 프로그램 : WSGI의 기본 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿