在我的应用程序中,通过发出请求来更改公共对象的状态,响应取决于状态.
class SomeObj():
def __init__(self, param):
self.param = param
def query(self):
self.param += 1
return self.param
global_obj = SomeObj(0)
@app.route('/')
def home():
flash(global_obj.query())
render_template('index.html')
Run Code Online (Sandbox Code Playgroud)
如果我在我的开发服务器上运行它,我希望得到1,2,3等等.如果同时向100个不同的客户提出请求,可能出现问题吗?预期的结果是100个不同的客户端每个都看到1到100之间的唯一数字.或者会发生这样的事情:
self.param增加1.self.param再次递增.由于只有两个客户端,预期结果为1和2,而不是2和3.跳过了一个数字.
当我扩展我的应用程序时,这会发生吗?我应该看一下全局变量的替代方案?
我正在处理一个Flask项目,我希望在滚动时让索引加载更多内容.我想设置一个全局变量来保存页面加载的次数.我的项目结构如下:
???run.py
???app
???templates
???_init_.py
???views.py
???models.py
Run Code Online (Sandbox Code Playgroud)
首先,我将全局变量声明为_init_.py:
global index_add_counter
Run Code Online (Sandbox Code Playgroud)
和Pycharm警告说 Global variable 'index_add_counter' is undefined at the module level
在views.py:
from app import app,db,index_add_counter
Run Code Online (Sandbox Code Playgroud)
而且有 ImportError: cannot import name index_add_counter
我还引用了global-variable-and-python-flask 但是我没有main()函数.在Flask中设置全局变量的正确方法是什么?