gpt4 book ai didi

python - 获取flask中的用户id

转载 作者:行者123 更新时间:2023-12-05 01:16:39 24 4
gpt4 key购买 nike

注意。不重复 Get current user id in Flask .

我使用 flask_login 和 flask,所以要获取当前 ID,它只有 flask_login.current_user.id。但是当我想用命令创建一个变量时,问题就出现了,比如在我的 app.py 中:

...
curr_user = flask_login.current_user.id

def function_a(curr_user):
os.mkdir(path + '/' + curr_user)
return 'Path created successfully'
...

也就是说:

AttributeError: 'NoneType' object has no attribute 'get_id'

只在运行时(不需要调用,只给curr_user赋值做题)

尝试调用函数 w/variable 作为 flask_login.current_user.id 和我一样。

我认为麻烦是因为我无法获取一般用户的 ID(在 app.py 运行实例中),这需要上下文。所以,我尝试了:

with app.test_request_context():

在分配之前,我只为用户和 guest 获得了 None。

编辑。我知道我可以做到:

def function_a():
os.mkdir(path+'/'+flask_login.current_user.id)
return 'Path created successfully'

但这只是一个示例,真正需要的是将值赋值给具有上下文的非局部变量。

最佳答案

您可以使用“g”将 user_id 保存在应用上下文中:

from flask import g

if current_user.is_authenticated():
g.user = current_user.get_id()

但最简单的解决方案是将用户 ID 传递给您正在调用的函数。

# call this function from inside the app/request context
def function_a(user_id):
os.mkdir(os.path.join(path,user_id))
return 'Path created successfully'

关于python - 获取flask中的用户id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53094104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com