0

我希望能够制作一个我可以调用的 utils 文件,该文件使用所有从数据库请求数据的命令列表:

import asyncpg

async def is_registered(ctx):
    pg_con = await asyncpg.create_pool(database="Db", user="postgres", password=db_pw)
    registered = await pg_con.execute("SELECT EXISTS (SELECT 1 FROM users WHERE user_id = $1)", ctx.author.id)
    if registered:
        await ctx.send("hi")
        return True
    else:
        return False

async def is_registered(ctx): #another function
    pg_con = await asyncpg.create_pool(database="Db", user="postgres", password=db_pw)
    registered = await pg_con.execute("SELECT EXISTS (SELECT 1 FROM users WHERE user_id = $1)", ctx.author.id)
    if registered:
        await ctx.send("hi")
        return True
    else:
        return False

...

等等。我想在另一个文件中使用import. 每次命名都有什么缺点pg_con吗,有没有办法处理它,所以我不必这样做?有没有更好的方法来处理这个问题?

4

1 回答 1

0

使用连接池执行单个查询是没有意义的,每次建立连接/池会慢很多。

处理此问题的更好方法是将Bot连接池子类化并添加为属性。
这样,您就可以通过Context.bot.

另外,请注意,在您的示例中,您正在隐藏该功能。

于 2020-01-30T00:47:46.413 回答