我正在尝试获取我拥有的数据库的当前用户。但我无法找到一种方法来做到这一点,并且堆栈溢出没有类似的问题。在postgresql中有一个方法current_user
。例如,我只是说SELECT current_user
,我会得到一个包含当前用户名称的表格。 Sqlalchemy有类似的东西吗?
答案 0 :(得分:2)
您可以使用literal_column
:
session.query(literal_column("current_user"))
或
connection.execute(select([literal_column("current_user")]))
答案 1 :(得分:1)
如果您使用 Flask 的 flask-login
模块,您只需使用 current_user
导入函数 from flask_login import current_user
。
然后,如果将其保存在数据库中,则可以从数据库和数据库模型(例如 Sqlite/SqlAlchemy)中获取它:
u_id = current_user.id
u_email = current_user.email
u_name = current_user.name
等
答案 2 :(得分:0)
所以我找到另一种方法来获取sqlalchemy中的当前db用户。我只能说func.current_user()
,我将获得当前的db用户。要使用func
,我必须进行导入。导入看起来像from sqlalchemy.sql import func
。我还发现我可以说:
curr_usr = self.session.query("current_user")
for usr in curr_usr:
user = usr[0]
在那里我也得到了db用户。我写了usr[0]
,因为curr_usr
返回一个包含两个项目的列表。我不知道为什么会这样做,但它只是这样做,该列表的第一项是db用户的名称。