python 내장 라 이브 러 리 wgiref 사용(WSGI 기본 입문)
1.WSGI 처리 과정
간단 한 예시
다음 예제 프로그램 을 실행 한 후 브 라 우 저 에http://127.0.0.1:9999/로 시작 하 는 임의의 url 을 입력 하면 되 돌아 오 는 결 과 를 볼 수 있 습 니 다.인 스 턴 스 프로그램 에서 모든 url 은 같은 App 으로 처 리 됩 니 다.실제 생산 환경 에서 서로 다른 url 은 서로 다른 App 에 투사 해 야 하지만 이 부분 은 본 고 에서 설명 하지 않 습 니 다.
# wsgiref Python , wsgi ,
from wsgiref.simple_server import make_server, demo_app
# wsgi socket server
# url demo_app , demo_app
# app , demo_app , environ 、start_response 、
ws = make_server('127.0.0.1', 9999, demo_app)
#
ws.serve_forever()
demo_app 소스 코드
def demo_app(environ,start_response):
from io import StringIO
stdout = StringIO()
print("Hello world!", file=stdout)
print(file=stdout)
# environ ,
h = sorted(environ.items())
for k,v in h:
print(k,'=',repr(v), file=stdout)
# return start_response
start_response("200 OK", [('Content-Type','text/plain; charset=utf-8')])
return [stdout.getvalue().encode("utf-8")] # , byte , start_response Content-Type
demo_app 클래스 정의 두 가지 방식
# : __init__ __iter__ , environ start_response,
# make_server app
class ApplicationClass:
def __init__(self, environ, start_response):
self.e = environ
self.sr = start_response
def __iter__(self):
from io import StringIO
stdout = StringIO()
print("Hello world!", file=stdout)
print(file=stdout)
h = sorted(self.e.items())
for k, v in h:
print(k, '=', repr(v), file=stdout)
self.sr("200 OK", [('Content-Type', 'text/plain; charset=utf-8')])
yield from [stdout.getvalue().encode("utf-8")]
# : __call__ , environ start_response,
# make_server app
class ApplicationInstance:
def __call__(self, environ, start_response):
from io import StringIO
stdout = StringIO()
print("Hello world!", file=stdout)
print(file=stdout)
h = sorted(environ.items())
for k, v in h:
print(k, '=', repr(v), file=stdout)
start_response("200 OK", [('Content-Type', 'text/plain; charset=utf-8')])
return [stdout.getvalue().encode("utf-8")]
3.WSGI 웹 서버 와 응용 프로그램WSGI 웹 서버
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.