веб-приложение использует одно и то же хранилище данных

Я работаю в приложении, которое я использую для вычисления деталей пользователя. Но каким-то образом значения пользователя изменяют значения другого пользователя. Ниже приведен фрагмент кода

def Compute_UserScore(self, details, ques_no): try: if(HomePage.answer_.strip() == ""): self.response.write("""<script type = "text/javascript"> alert("Dear User, You can not answer same answer twice.. Take test Again !"); </script>""") self.redirect('/otherPages/subjectSelect.html') else: count = 0 HomePage.ans_no = 0 HomePage.unans_no = 0 HomePage.correct_no = 0 HomePage.wrong_no = 0 HomePage.failed_ques = list() HomePage.answer_ = HomePage.answer_.strip() question_1 = HomePage.question_.split(" gcdc_split_format ") while (count != (ques_no)): user_answer = str(details[count]).strip().capitalize() real_answer = str(HomePage.answer_[count]).strip().capitalize() if (len(str(user_answer).strip()) == 1): HomePage.ans_no = HomePage.ans_no + 1 if(user_answer.strip() == real_answer.strip()): HomePage.correct_no = HomePage.correct_no + 1 else: HomePage.wrong_no = HomePage.wrong_no + 1 HomePage.failed_ques.append(str("No. " + str(int((count + 1))) + " " + str(question_1[count]))) else: HomePage.unans_no = HomePage.unans_no + 1 count = count + 1 HomePage.answer_ = "" except: self.redirect('/') return " " 

и так выглядит моя домашняя страница

 class HomePage(webapp2.RequestHandler): percentage = None subject_answered = None username_ = None email_ = None super_date = None answer_ = " " question_ = " " failed_ques = list() wrong_no = 0 correct_no = 0 ans_no = 0 unans_no = 0 

Проблема в том, что когда пользователь A принимает тест, он видит результат другого пользователя B. Читайте об использовании переменной экземпляра, но все еще не знаете, как заставить ее работать

One Solution collect form web for “веб-приложение использует одно и то же хранилище данных”

Решение прост: прекратите установку переменных класса в веб-разработке! 🙂 Веб-запросы не имеют статуса, это означает, что вы никогда не знаете, что происходит между запросами – между установкой переменной класса и перенаправлением.

Используйте базу данных для хранения временных данных с именем пользователя / именем пользователя (или используйте хеширование / случайное для безопасности) или отправляйте значения по параметрам (скрытые или после «?») На другую страницу html. Использование базы данных лучше, если вы не хотите этого, то отправляйте значения (скрытые в html) по http. Вот одна версия решения (без базы данных):

1. Используйте обычную html-форму и обработчик записи для этой формы – страницу вопроса.

2.In обработчик написать метод получения следующим образом:

 def post(self, some_parameters): ... self.render('homepage.html', {'ans_no': ans_no,\ 'uans_no': uans_no ...}) 

3.homepage.html должен быть шаблоном для показа результатов

  • Не удается извлечь текст и найти все по BeautifulSoup
  • PyQt: QImage () возвращает 'Null'-Image
  • Лучший способ интегрировать код Python с HTML
  • Взаимодействие с скриптом python, выполняющим инфинитивный цикл из Интернета
  • Очистить несколько URL-адресов, используя QWebPage
  • Функция parse () python scrapy (), где возвращается возвращаемое значение?
  • Python устанавливает настройки Firefox для Selenium - Загрузить местоположение
  • Scrapy и Selenium представляют форму, которая динамически отображается
  • Как просмотреть весь сайт с помощью селена?
  • Как установить portia, приложение python из Github (Mac)
  • Регулярные выражения и коды символов в данных экспорта Scrapy
  • Python - лучший язык программирования в мире.