Рассмотрим следующий код в моем приложении WebApp2 в Google App Engine:
count = 0
class MyHandler(webapp2.RequestHandler):
def get(self):
global count
count = count + 1
print count
С каждым обновлением страницы счетчик увеличивается.
Я пришел из мира PHP, где каждый запрос был новой глобальной средой.Насколько я понимаю, здесь происходит следующее: поскольку я использую конфигурацию wsgi для WebApp2, Python не запускает новый процесс при каждом запросе. С другой стороны, если бы я использовал конфигурацию cgi, глобальная среда создавала бы экземпляр каждый раз заново, как PHP ...
Предполагая, что вышеизложенное верно (если нет, поправьте меня) ...
РЕДАКТИРОВАТЬ:
Вот попытка использования threadlocal:
count = 0
mydata = threading.local()
mydata.count = 0
class MyHandler(webapp2.RequestHandler):
def get(self):
global count
count = count + 1
print count
mydata.count = mydata.count + 1
print mydata.count
Они также увеличиваются между запросами