zha*_*nwu 5 python google-app-engine
使用谷歌应用引擎:
# more code ahead not shown
application = webapp.WSGIApplication([('/', Home)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
如果两个不同的用户在两台不同的机器上请求网页,那么将调用服务器的两个单独实例?
或者只是服务器的一个实例一直在运行以处理所有请求?
如果一个用户在同一个浏览器中打开网页两次怎么样?
编辑:
根据下面的答案,一个实例可以轮流处理来自不同用户的请求.然后考虑以下几部分代码,取自Google给出的示例:
class User(db.Model):
email = db.EmailProperty()
nickname = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)
1,这里的电子邮件和昵称被定义为类变量?2,同一服务器实例处理的所有请求共享相同的变量,因而错误地相互干扰?(比如,一个人的电子邮件出现在另一个人的页面中)
PS.我知道我应该阅读手册和文档更多,我正在这样做,但是经验丰富的程序员的答案将真正帮助我更快地理解,更多通过,谢谢
一个实例在其生命周期内可以处理许多请求。在Python运行时的线程模型中,每个实例在任何给定时间只能处理单个请求。如果两个请求同时到达,它们可能会由一个实例依次处理,或者可能会生成第二个实例来处理该请求。
编辑:
一般来说,每个请求使用的变量将被限定在 RequestHandler 实例.get()或.post()方法的范围内,因此不能“泄漏”到其他请求中。在脚本中使用全局变量时应小心,因为这些变量将缓存在实例中并在请求之间共享。在不确切知道为什么要使用全局变量的情况下不要使用全局变量(就这一点而言,这对于任何应用程序来说都是一个很好的建议),这样就可以了。
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |