2014-09-11 9 views
-1

요청 ($_GET)을 파이썬 스크립트에 표시하는 방법을 알고 싶습니까?

UBUNTU 서버에서 apache2를 실행하는 기본 웹 서버로 mod_python을 사용하고 있습니다.

당신이 당신의 도움이 매우 이해할 수있을 것이다 어떤 생각을 :)이있는 경우

등 장고 ... 난 특정 작업에 대해 하나의 파이썬 스크립트를 실행하고 있기 때문에 내 경우에 필요한 노트와 같은 다른 파이썬 웹 서버 :

+2

당신은 어떤 웹 프레임 워크를 사용하고 또는 직접 WSGI의 호스에서 마시는거야? –

+0

아니오 프레임 워크를 사용하지 않습니다 :) 기본 파이썬 웹 서버 :) – user3818090

+3

그런 다음 지금 하나를 사용하여 시작하십시오. 낮은 수준에 머물러야하는 이유는 거의 없습니다. Flask, Pyramid 및 Django는 현재 사용자의 요구에 따라 가장 많이 사용되지만 https://wiki.python.org/moin/WebFrameworks에서 하나를 선택하십시오. –

답변

2

웹 요청에 응답하는 간단한 스크립트의 경우 mod_python을 사용하지 않습니다. 대신 여기에 mod_wsgi으로 전환하고 싶을 것입니다.

사용자가 직접 QUERY_STRING WSGI 변수를 구문 분석해야합니다. 당신은 urlparse.parse_qs() function으로 수행 할 수 있습니다 : 키가 쿼리 문자열에 두 번 이상 발생할 수 있기 때문에

from urlparse import parse_qs 

def application(environ, start_response): 
    params = parse_qs(environ['QUERY_STRING']) 
    foo = params.get('foo', [None])[0] 

parse_qs는, 쿼리 문자열을 구문 분석하고 목록 키 당에 결과 사전에 값을 설정합니다.

위의 목록에서 첫 번째 값을 선택하거나 키가 전혀없는 경우 None을 선택합니다.

일반 바닐라 WSGI를 사용하려면 decent tutorial을 읽고 어떻게 작동하는지 이해하십시오. 그러나 프레임 워크를 사용하는 것이 좋습니다. 심지어 Werkzeug조차 간단한 스크립트 일지라도 개발자로서의 삶을 훨씬 더 간단하게 만들 수 있습니다. 당신이 mod_python 요청 처리기를 고수하려는 경우

, request.args()environ['QUERY_STRING'] 교체 :

from urlparse import parse_qs 

def requesthandler(req): 
    params = parse_qs(req.args) 
    foo = params.get('foo', [None])[0] 
+0

감사합니다. 외부 문자열에서'def application' 'foo'를 호출하는 방법 감사합니다. – user3818090

+1

@ user3818090 : ick, 당신은'mod_wsgi'이 아니라'mod_python'을 사용하고 있습니다. 그것은 오히려 고대와 시대에 뒤떨어졌습니다. –

+0

당신이 제안한 것처럼'mod_wsgi'를 설치했습니다! – user3818090