Python Language
WSGI (웹 서버 게이트웨이 인터페이스)
수색…
매개 변수
매개 변수 | 세부 |
---|---|
start_response | 시작을 처리하는 데 사용되는 함수 |
서버 개체 (메서드)
서버 객체에는 호출 가능한 응용 프로그램 객체가 될 수있는 '응용 프로그램'매개 변수가 있습니다 (다른 예제 참조). 먼저 헤더를 쓴 다음 응용 프로그램에서 시스템 표준 출력으로 반환 한 데이터 본문을 씁니다.
import os, sys
def run(application):
environ['wsgi.input'] = sys.stdin
environ['wsgi.errors'] = sys.stderr
headers_set = []
headers_sent = []
def write (data):
"""
Writes header data from 'start_response()' as well as body data from 'response'
to system standard output.
"""
if not headers_set:
raise AssertionError("write() before start_response()")
elif not headers_sent:
status, response_headers = headers_sent[:] = headers_set
sys.stdout.write('Status: %s\r\n' % status)
for header in response_headers:
sys.stdout.write('%s: %s\r\n' % header)
sys.stdout.write('\r\n')
sys.stdout.write(data)
sys.stdout.flush()
def start_response(status, response_headers):
""" Sets headers for the response returned by this server."""
if headers_set:
raise AssertionError("Headers already set!")
headers_set[:] = [status, response_headers]
return write
# This is the most important piece of the 'server object'
# Our result will be generated by the 'application' given to this method as a parameter
result = application(environ, start_response)
try:
for data in result:
if data:
write(data) # Body isn't empty send its data to 'write()'
if not headers_sent:
write('') # Body is empty, send empty string to 'write()'
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow