파이썬 CGI 스크립트는 세션에 데이터를 쓰고 읽을 수 있습니까? 그렇다면 어떻게? 고급 API가 있습니까? 또는 내 수업을 반드시 시작해야합니까?파이썬 : CGI 스크립트에서 세션과 상호 작용
답변
cgi
에는 "세션"이 없습니다. 원시 cgi
을 사용하는 경우 세션 처리 코드를 롤백해야합니다.
기본적으로 세션은 고유 한 쿠키 번호를 만들어 클라이언트에 대한 응답 헤더로 보내고 모든 연결에서이 쿠키를 확인하여 작동합니다. 서버 (메모리, 데이터베이스, 디스크)의 어딘가에 세션 데이터를 저장하고 쿠키 번호를 키로 사용하여 클라이언트가 요청할 때마다 검색합니다.
그러나 cgi
은 웹용 응용 프로그램을 파이썬으로 개발하는 방법이 아닙니다. wsgi
을 사용하십시오. 웹 프레임 워크를 사용하십시오.
다음은 cherrypy을 사용한 간단한 예입니다. 이 코드는 wsgi
응용 프로그램이 어떤 wsgi
사용이 가능한 웹 서버 (아파치에 게시 할 수 있다는 의미에서입니다
import cherrypy
class HelloSessionWorld(object):
@cherrypy.tools.sessions()
def index(self):
if 'data' in cherrypy.session:
return "You have a cookie! It says: %r" % cherrypy.session['data']
else:
return "You don't have a cookie. <a href='getcookie'>Get one</a>."
index.exposed = True
@cherrypy.tools.sessions()
def getcookie(self):
cherrypy.session['data'] = 'Hello World'
return "Done. Please <a href='..'>return</a> to see it"
getcookie.exposed = True
application = cherrypy.tree.mount(HelloSessionWorld(), '/')
if __name__ == '__main__':
cherrypy.quickstart(application)
참고 : cherrypy.tools.sessions
자동으로 데이터 쿠키 설정/검색하고 연결을 처리하는 cherrypy 도구입니다 mod_wsgi
을 가짐). 그냥 파이썬으로 코드를 실행할 수 있으며 사용 WSGI을 허용하지 않습니다 호스팅 계획 http://localhost:8080/
에서 내 '저가'웹 서비스를 제공 시작합니다 그래서 또한, cherrypy는 자신의 wsgi
서버가 있습니다. 공유 아파치 서버이기 때문에 'mod_wsgi'아파치 모듈을 사용할 수 없습니다. 나는 내 수업을 개발 중이다.
는이 사이트에서 사용할 수있는 세션 클래스의 구현을 실험하고, 0에서 시작하지 않으려면 : WSGI에 대한 http://cgi.tutorial.codepoint.net/a-session-class
- 1. 이벤트 호출 중에 최대 절전 모드 세션과 상호 작용
- 2. appengine의 SVN과 상호 작용
- 3. cgi 스크립트에서 .py 파이썬 스크립트 시작
- 4. IO.Stream 상호 작용 테스트
- 5. Exchange 2007과 상호 작용
- 6. 창 간의 상호 작용
- 7. SQL 데이터베이스 상호 작용
- 8. DLL 간의 상호 작용
- 9. 클라이언트 서버 상호 작용
- 10. 프로젝트간에 상호 작용
- 11. jQuery와의 PDF 상호 작용
- 12. 사이트 상호 작용 자동화
- 13. MFC가없는 CMutex와 상호 작용
- 14. UIImageView의 상호 작용
- 15. SQLite와 R 상호 작용
- 16. WebGL 지오메트리 상호 작용
- 17. C# 데이터베이스 상호 작용
- 18. 여러 APK의 상호 작용
- 19. Java와 Mathematica의 상호 작용
- 20. 마우스 상호 작용
- 21. 클래스 상호 작용 도움말
- 22. 컨트롤 상호 작용 질문
- 23. 포스트 그레스 상호 작용
- 24. (콘솔) 사용자 상호 작용?
- 25. iPod 상호 작용
- 26. twisted.internet.reactor와의 상호 작용
- 27. Windows 서비스 상호 작용
- 28. Google지도와 GTK의 상호 작용
- 29. 여러 발표자 상호 작용
- 30. CMS는 익명의 상호 작용
하나는 ... 그 동안 물론 당신은 CGI를 통해 WSGI를 배포 할 수 있습니다. 실제로 단일 프로세스 실행 방식은 dev 서버에서 모듈을 다시로드하는 것에 대해 걱정할 필요가 없다는 것을 의미하기 때문에 좋은 생각 일 수 있습니다. – bobince