将PLPGSQL函数转换为Python类方法

将PLPGSQL函数转换为Python类方法,python,postgresql,plpgsql,psycopg2,Python,Postgresql,Plpgsql,Psycopg2,假设我已经用PLPGSQL编写了很多函数。如何使用Python代码和psycopg2库获取所有这些函数 请参见下面的示例函数: CREATE OR REPLACE FUNCTION get_player_by_email(email_adress varchar) RETURNS TABLE(id bigint, email varchar, nick varchar) AS $$ BEGIN RETURN QUERY EXECUTE 'SELECT players.i

假设我已经用PLPGSQL编写了很多函数。如何使用Python代码和psycopg2库获取所有这些函数

请参见下面的示例函数:

CREATE OR REPLACE FUNCTION get_player_by_email(email_adress varchar)
RETURNS TABLE(id bigint, email varchar, nick varchar)
AS $$
BEGIN
    RETURN QUERY EXECUTE 
        'SELECT players.id, players.email, nick
        FROM players
        WHERE players.email = $1'
        USING email_adress;
    RETURN;
END
$$ LANGUAGE plpgsql stable;
为什么我需要这个?我有一个带有init的Python类,它连接到我的数据库。我想在init中添加以下功能:浏览所有函数,并使用这些函数名动态创建新方法,这些函数名返回plpgsql函数的确切功能。例如,我希望自动生成通过电子邮件获取玩家的方法:

Class MyDatabase(object):
    def get_player_by_email(self, email):
        pass

答案太大了。您需要将问题分解为更小的部分。因此,假设我想使用psycopg2库从python代码浏览数据库中的所有函数,我认为这是一个很好的开始。是的,这是一个很好的开始。重写它,并在结尾的一小段中像脚注一样提示最终目标。完成后,我的脚注很大,但我认为我的问题现在符合SO标准,如果不符合,请不要犹豫提及,我将再次调整。