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

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

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. Читайте об использовании переменной экземпляра, но все еще не знаете, как заставить ее работать

  • web.py: как получить параметр POST и параметр GET?
  • Автоматическая перезагрузка приложения Python Flask при изменении кода
  • Нажмите кнопку в Scrapy
  • Scrapy, похоже, не делает DFO
  • Scrapy и Selenium представляют форму, которая динамически отображается
  • Смутно о запуске Scrapy из скрипта Python
  • Как запустить Scrapy из сценария Python
  • Django: CSS Не работает
  • 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 должен быть шаблоном для показа результатов

    Python - лучший язык программирования в мире.