Найти - Пользователи
Полная версия: Передача значения переменной по html шаблонам в django и инкремент переменной.
Начало » Django » Передача значения переменной по html шаблонам в django и инкремент переменной.
1
MEOW
В очередной раз доброго времени суток. Нужна небольшая помощь начинающему программисту. Хотелось бы узнать, как передавать значение переменной из одного шаблона html в другой и увеличивать/уменьшать ее значение. То есть: У меня есть переменная a=10. Я передаю ее значение в html шаблон. По нажатию кнопки я увеличиваю ее значение и сразу же перехожу на следующий html шаблон, где ее вывожу на экран. Как реализовать увеличение переменной и передачу в последующие шаблоны? Буду весьма благодарен, за любую помощь.
Papa_Svin
MEOW
Для начала, вам нужно твердо уяснить, что сценарий приложения, который предлагает джанго - это чистые функции представлений. Приложение не должно хранить состояние. Когда вы запустите свой проект на “настоящем” сервере, у вас будет одновременно запущено множество одинаковых процессов, у которых нет общей памяти, и вы не знаете заранее в какой из процессов попадет текущий клиентский запрос.
По нажатию кнопки я увеличиваю ее значение и сразу же перехожу на следующий html шаблон
По нажатию кнопки вы получаете новый запрос, который скорее всего попадет в другой процесс, который ничего не знает о предыдущем запросе.
Единственный способ сохранять какую-либо историю, это использовать хранилище данных, к которому одновременно могут обращаться несколько клиентов и которое обеспечивает атомарность таких операций, как инкремент переменной. Традиционно для этого можно задействовать СУБД, и писать свою переменную, например в сессию пользователя.
Но если у вас нет задачи сохранять переменную между сессиями, то есть когда вы закрыли браузер и потом запустили его опять и попали на тот же сайт, и вам не нужно хранить значение переменной между этими двумя открытиями, то очень просто передавайте значение переменной в запросе, и увеличивайте её значение скриптом на клиенте.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB