파이썬의 WSGI를 사용하여 소규모 웹 응용 프로그램을 개발하려고합니다. 사용자가 구글을 선택하는 경우 예를 들어, 그들은이 코드를 실행할 때 등WSGI (프레임 워크 없음)로 URL 리디렉션
from wsgiref.simple_server import make_server
from cgi import parse_qs, escape
main_html = """
<html>
<head><title> Welcome to redirection test page </title> </head>
<body>
<form method="get" action='/visit'>
<input type=radio name='site' value=google> Google
<input type=radio name='site' value=facebook> Facebook
<input type=submit value=submit>
</form>
</body>
</html>
"""
def main(environ, start_response):
response_body = main_html
print type(response_body)
status = '200 OK'
response_headers = [
('Content-Type','text/html'),
('Content-Length', str(len(response_body)))
]
start_response(status, response_headers)
return [response_body]
def visit(environ, start_response):
qs = parse_qs(environ['QUERY_STRING'])
dest = qs.ge('site')[0]
if dest == 'google':
start_response('301 Moved Permanently', [('Location','http://google.com')])
else:
start_response('301 Moved Permanently', [('Location','http://facebook.com')])
return [1]
def app(environ, start_response):
if environ['PATH_INFO'] == '/':
return main(environ, start_response)
elif environ['PATH_INFO'] == '/visit':
return visit(environ, start_response)
httpd = make_server('192.168.48.128',8052, app)
print 'Serving on port 8052'
httpd.serve_forever()
그러나, 내가 얻을, 그들은 페이스 북을 선택한 경우 그들이 facebook.com로 리디렉션 것, google.com로 리디렉션 될 것이다 다음 오류 :
Traceback (most recent call last):
File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
self.finish_response()
File "/usr/lib/python2.7/wsgiref/handlers.py", line 131, in finish_response
self.close()
File "/usr/lib/python2.7/wsgiref/simple_server.py", line 33, in close
self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'
. 완전한 [SSCCE] (http://sscce.org/)는 도움이 될 것입니다 – Dannnno
이것은 완전한 SSCCE로 작동하는 유일한 파일입니다. 1. 서버를 시작합니다. 2. 색인 페이지를 엽니 다. 3. Oauth를 사용하여 Google 인증. 누락 된 부분에 대해 자세히 설명해주십시오. – logicalgeek
그러면 SSCCE – Dannnno