2010-11-21 4 views
0

CGI를 사용하여 파이썬으로 작성한 웹 사이트가 있습니다. 아주 최근까지, 규모 확장이 중요해질 때까지 이것은 컸습니다.mod_python을 사용할 때 python 스크립트에서 쿠키를 읽는 방법

매우 간단하기 때문에 mod_python을 사용하기로 결정했습니다. 내 사이트의 기능 대부분은 다양한 페이지를 렌더링하기 위해 호출하는 파이썬 모듈에 저장됩니다. 는 CGI 스크립트 중 하나는 다음과 같습니다

def get_username(): 
    cookie = Cookie.SimpleCookie(os.environ.get("HTTP_COOKIE","")) 
    sessionid = cookie['sessionid'].value 
    ip = os.environ['REMOTE_ADDR'] 
    username = select username from sessions where ip = %foo and session = %bar 
    return(username) 

현재 사용자의 사용자 이름을 가져올 :

#!/usr/bin/python 

import mysite 

mysite.init() 
mysite.foo_page() 
mysite.close() 

및 내 사이트에

, 나는 이런 일이있을 수 있습니다. 문제는 os가 모듈의 맨 위에있는 스크립트로 가져올 때 os.envrion이 채워지는 것에 달려 있다는 것입니다. 이제는 mod_python을 사용하기 때문에 인터프리터는이 모듈을 한 번만로드하고 한 번만 채 웁니다. os에는 원격 시스템이 아닌 로컬 시스템의 환경 변수가 있기 때문에 쿠키를 읽을 수 없습니다.

나는이 방법이있을 것이라고 확신하지만, 그것이 무엇인지는 잘 모르겠습니다. 나는 mod_python을 3.x를이 쉽게하기 위해 별도의 Cookie 클래스를 (포함? 다시 오기 get_username 기능의 운영 체제,하지만 주사위 :(.

어떤 생각?

답변

0

은 mod_python의 버전이 사용중인 시도 . "쿠키"] IIRC 당신이 요청 객체의 headers_in 멤버의 내부에 들어오는 쿠키를 얻을 수

+0

req.headers_in을 이전 버전에서 here)

를 참조 - 그래, 그게이었다 주셔서 감사합니다.! – Ryan

관련 문제