Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2010 13:00:10

gonandriy
От:
Зарегистрирован: 2010-06-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

Сохраняет ли джанго состояние обьектов между двумя НТТР запросами?
например есть код:

 
class _Registry(object):
obj = None
def __new__(cls, *dt, **mp):
if cls.obj is None:
cls.obj = object.__new__(cls,*dt,**mp)
return cls.obj
Если в obj бил создан атрибут с определённым значением то будет ли он виден в следующем запросе?
У меня ситуацыя, когда некое сообщений виводиться в зависимости от етого аргумента, и после того как я опять загружаю страницу где код по установке етого аргумента точно не выполнялся ето сообщение всё же есть.



Офлайн

#2 Июнь 25, 2010 14:14:46

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

gonandriy
Сохраняет ли джанго состояние обьектов между двумя НТТР запросами?
На этот вопрос невозможно ответить однозначно, пока вы не расскажите каким образом вы джангу запускаете.

При разных способох деплоя поведение может меняться.

И конечно же шаренный стейт надо передавать через хранилища данных, а не через код.



Офлайн

#3 Июнь 25, 2010 14:39:57

gonandriy
От:
Зарегистрирован: 2010-06-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

Джангу запускаю через его сервер HTTP server (manage.py runserver)

Daevaorn
Через хранилища данных
имеете ввиду через файловую систему или базу?



Офлайн

#4 Июнь 25, 2010 15:00:00

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

gonandriy
имеете ввиду через файловую систему или базу?
В том числе.



Офлайн

#5 Июнь 25, 2010 15:01:22

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

gonandriy
Джангу запускаю через его сервер HTTP server (manage.py runserver)
Да, в этом случае все запросы обрабатываются в одном процессе.



Офлайн

#6 Июнь 25, 2010 15:08:53

gonandriy
От:
Зарегистрирован: 2010-06-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

Daevaorn
Да, в этом случае все запросы обрабатываются в одном процессе.
А как в случае mod_wsgi для апача?



Офлайн

#7 Июнь 25, 2010 15:13:02

gonandriy
От:
Зарегистрирован: 2010-06-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

Как может бить видно из приведенного кода ето попытка сделать единый реестр объетков для всего приложения.
Мне кажеться ипользовать базу или файлы для етих целей слишком нерацынально.
Можно как то в памяти сделать общую область ?



Офлайн

#8 Июнь 27, 2010 03:52:11

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

gonandriy
А как в случае mod_wsgi для апача?
Опять-таки зависит от настроек.
gonandriy
Мне кажеться ипользовать базу или файлы для етих целей слишком нерацынально.
Говорить о рациональности, видя этот код, я не могу. Всё очень сильно зависит от ваших задач и целей.



Офлайн

#9 Июнь 28, 2010 21:44:32

gonandriy
От:
Зарегистрирован: 2010-06-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

Спасибо, Daevaorn
Я немного модифицировал скрипт і сейчас удаляю все поля пере завершением работы

Не подскажете как наиболее практично пеализовать синглетон на Python/Django?



Офлайн

#10 Июнь 30, 2010 03:53:48

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Состояние обьектов между запросами

gonandriy
Не подскажете как наиболее практично пеализовать синглетон на Python/Django?
Обычно синглтон в питоне – это переменная на уровне модуля. Но она single в рамках одного процесса. Если приложение работает в нескольких процессах, то тут опять-таки надо шарить стейт через какое-то общее хранилище.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version