@xzartsust
Учусь

Внести в БД ID-сервера и дефолтний префикс — discord.py rewrite, PostgreSQL?

И сова всем доброго времени суток <з !!!
Есть такой код, когда бот заходит на сервер в БД должно заноситься айди сервера и дефолтний префикс.
import discord
from discord.ext import commands
import os
import asyncpg, asyncio

PREFIX=str('.')


class prefix(commands.Cog):
    def __init__(self,bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_guild_join(self, guild):
        guildid= str(guild.id)
        await self.bot.execute(f'INSERN INTO prefixDB (guild_id, prefix) VALUES ({guildid},{PREFIX})')

    @commands.Cog.listener()
    async def on_guild_remove(self):
        pass

    @commands.command()
    @commands.has_permissions(administrator=True)
    async def prefix(self, ctx, prefix):
        pass

def setup(bot):
    bot.add_cog(prefix(bot))


Но вот не задача выдает таку ошибку:
5f2c12f97b7e4067897732.png

На Heroku вот:
5f2c132d146c5032261352.png
  • Вопрос задан
  • 95 просмотров
Решения вопроса 2
Alexandre888
@Alexandre888
Javascript-разработчик
await self.bot.execute(f'INSERN INTO prefixDB (guild_id, prefix) VALUES ({guildid},{PREFIX})')

1) запрос неправильный - замените INSERN на INSERT
2) попробуйте bot заменить на cursor
Ответ написан
sotanodroid
@sotanodroid
Python/Golang developer
Для работы с бд недостаточно просто импортировать asyncpg.

Необходимо в коде создать подключение к базе и использовтаь его для работы с базой например вот так:

import asyncpg

async def main():
    conn = await asyncpg.connect('postgresql://postgres@localhost/test')

    await conn.execute('''
        INSERT INTO users(name, dob) VALUES($1, $2)
    ''', 'Bob', datetime.date(1984, 3, 1))

    await conn.close()


Больше примеров в документации к библиотеке.

У вас же ошибка из-за вызова несуществующего метода у объекта.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 сент. 2020, в 00:10
15000 руб./за проект
27 сент. 2020, в 21:54
15000 руб./за проект