Нет сессии на cgi
. Вы должны свернуть свой собственный код обработки сеанса, если вы используете raw cgi
.
По сути, сеансы работают путем создания уникального номера файла cookie и отправки его в заголовке ответа клиенту, а затем проверки этого файла cookie при каждом подключении. Сохраните данные сеанса где-нибудь на сервере (память, база данных, диск) и используйте номер файла cookie в качестве ключа для получения их при каждом запросе, сделанном клиентом.
Однако cgi
- это не то, как вы разрабатываете приложения для Интернета на python. Используйте wsgi
. Используйте веб-фреймворк.
Вот краткий пример использования cherrypy . cherrypy.tools.sessions
- инструмент с расширенными возможностями, который автоматически устанавливает / извлекает файлы cookie и связывается с данными:
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)
Обратите внимание, что этот код является приложением wsgi
, в том смысле, что вы можете опубликовать его на любом веб-сервере с поддержкой wsgi
(apache имеет mod_wsgi
). Кроме того, cherrypy имеет свой собственный сервер wsgi
, так что вы можете просто запустить код с python, и он начнет работать на http://localhost:8080/