为什么我不能使用全局变量从Flask程序到另一个python文件



我试图在另一个文件2中使用来自文件1的字典,但在文件2中它打印空字典。你能帮我解释一下原因吗,提前谢谢。

以下是我的文件1:

from flask import Flask, render_template, request
global user_pincode
user_pincode={}
app = Flask(__name__)
@app.route('/', methods=["GET", "POST"])
def index():
global user_pincode
#user_pincode getting updated here
@app.route('/delete', methods=["GET", "POST"])
def delete():
global user_pincode
#user_pincode getting updated here
if __name__ == "__main__":
app.run(debug=True)

以下是我的文件2:

import file1
print(file1.user_pincode)

您进行了import file1

这就是为什么file1.user_pincode等于{}

但是您没有调用任何可以更改值的函数。

看一看。

A。让我们修改file1中的函数delete

@app.route('/delete', methods=["GET", "POST"])
def delete():
#    global user_pincode 
user_pincode['key'] = 'delete'

B。修改调用方模块main.py:

import file1
print(file1.user_pincode)
file1.delete()
print(file1.user_pincode)

C。运行它:

python main.py 
{}
{'key': 'delete'}

一切如预期。

注意,dict在任何地方都不需要global

我认为这是一个编译时/运行时问题。

全局变量在编译时初始化为空字典。您的file2在编译时进行评估,因此它会打印一个空dict。

你的用例是什么?如果您想让一个值在单个请求中幸存下来,您可能需要将其存储在某个文件或数据库中。

相关内容

  • 没有找到相关文章

最新更新