SqlAlchemy当前的db用户

时间:2017-10-31 15:24:41

标签: python python-2.7 sqlalchemy

我正在尝试获取我拥有的数据库的当前用户。但我无法找到一种方法来做到这一点,并且堆栈溢出没有类似的问题。在postgresql中有一个方法current_user。例如,我只是说SELECT current_user,我会得到一个包含当前用户名称的表格。 Sqlalchemy有类似的东西吗?

3 个答案:

答案 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用户的名称。