Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python web应用正在共享相同的内存存储_Python_Google App Engine_Python 2.7_Web - Fatal编程技术网

Python web应用正在共享相同的内存存储

Python web应用正在共享相同的内存存储,python,google-app-engine,python-2.7,web,Python,Google App Engine,Python 2.7,Web,我在一个用于计算用户详细信息的应用程序中工作。但不知何故,一个用户的值会改变另一个用户的值。 下面是一段代码 def Compute_UserScore(self, details, ques_no): try: if(HomePage.answer_.strip() == ""): self.response.write("""<script type = "text/javascript"> alert("D

我在一个用于计算用户详细信息的应用程序中工作。但不知何故,一个用户的值会改变另一个用户的值。 下面是一段代码

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 " "
问题是,当用户a进行测试时,他看到另一个用户B的结果。
阅读了有关使用实例变量的内容,但仍然没有找到解决方法。

解决方案很简单:停止在web开发中设置类变量!:) Web请求是无状态的,这意味着您永远不知道在请求之间发生了什么-在设置类变量和重定向之间

使用数据库存储具有用户登录名/名称的临时数据(或使用哈希/随机设置以确保安全性),或通过参数(隐藏或在“?”之后)将值发送到其他html页面。 使用数据库更好,若您不想这样做,那个么通过http发送值(隐藏在html中)。以下是解决方案的一个版本(不含数据库):

1.使用普通html表单并为此表单-问题页面编写处理程序

2.在处理程序中,像这样写get方法:

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

3.homepage.html必须是显示结果的模板

解决方案很简单:停止在web开发中设置类变量!:) Web请求是无状态的,这意味着您永远不知道在请求之间发生了什么-在设置类变量和重定向之间

使用数据库存储具有用户登录名/名称的临时数据(或使用哈希/随机设置以确保安全性),或通过参数(隐藏或在“?”之后)将值发送到其他html页面。 使用数据库更好,若您不想这样做,那个么通过http发送值(隐藏在html中)。以下是解决方案的一个版本(不含数据库):

1.使用普通html表单并为此表单-问题页面编写处理程序

2.在处理程序中,像这样写get方法:

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

3.homepage.html必须是显示结果的模板

解决方案很简单:停止在web开发中设置类变量!:) Web请求是无状态的,这意味着您永远不知道在请求之间发生了什么-在设置类变量和重定向之间

使用数据库存储具有用户登录名/名称的临时数据(或使用哈希/随机设置以确保安全性),或通过参数(隐藏或在“?”之后)将值发送到其他html页面。 使用数据库更好,若您不想这样做,那个么通过http发送值(隐藏在html中)。以下是解决方案的一个版本(不含数据库):

1.使用普通html表单并为此表单-问题页面编写处理程序

2.在处理程序中,像这样写get方法:

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

3.homepage.html必须是显示结果的模板

解决方案很简单:停止在web开发中设置类变量!:) Web请求是无状态的,这意味着您永远不知道在请求之间发生了什么-在设置类变量和重定向之间

使用数据库存储具有用户登录名/名称的临时数据(或使用哈希/随机设置以确保安全性),或通过参数(隐藏或在“?”之后)将值发送到其他html页面。 使用数据库更好,若您不想这样做,那个么通过http发送值(隐藏在html中)。以下是解决方案的一个版本(不含数据库):

1.使用普通html表单并为此表单-问题页面编写处理程序

2.在处理程序中,像这样写get方法:

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


3.homepage.html必须是显示结果的模板

为什么要在实例方法中设置类变量?上面的代码就是问题所在。这就是为什么我要问为什么。一个链接到一个页面,帮助或更好的stil,一个示例代码。谢谢@wooble当你之前问这个问题时,你得到的答案有什么问题吗?@DanielRoseman,是的,我也问了。但我一直在努力让它发挥作用,但仍然没有取得任何进展。你需要一个系统来区分不同的用户。开始检查如何使用用户服务,以便开始构建一个好的应用程序,而不是创建一个小怪物。为什么要在实例方法中设置类变量?上面的代码就是问题所在。这就是为什么我要问为什么。一个链接到一个页面,帮助或更好的stil,一个示例代码。谢谢@wooble当你之前问这个问题时,你得到的答案有什么问题吗?@DanielRoseman,是的,我也问了。但我一直在努力让它发挥作用,但仍然没有取得任何进展。你需要一个系统来区分不同的用户。开始检查如何使用用户服务,以便开始构建一个好的应用程序,而不是创建一个小怪物。为什么要在实例方法中设置类变量?上面的代码就是问题所在。这就是为什么我要问为什么。一个链接到一个页面,帮助或更好的stil,一个示例代码。谢谢@wooble当你之前问这个问题时,你得到的答案有什么问题吗?@DanielRoseman,是的,我也问了。但我一直在努力让它发挥作用,但仍然没有取得任何进展。你需要一个系统来区分不同的用户。开始检查如何使用用户服务,以便开始构建一个好的应用程序,而不是创建一个小怪物。为什么要在实例方法中设置类变量?上面的代码就是问题所在。这就是为什么我要问为什么。一个链接到一个页面,帮助或更好的stil,一个示例代码。谢谢@wooble当你之前问这个问题时,你得到的答案有什么问题吗?@DanielRoseman,是的,我也问了。但我一直在努力让它发挥作用,但仍然没有取得任何进展。你需要一个系统来区分不同的用户。开始检查如何使用用户服务,以便开始构建一个好的应用程序,而不是你正在创建的小怪物。当然这是post方法-我的错误:)当然这是post方法-我的错误:)当然这是post方法-我的错误:)当然这是post方法-我的错误:)