Задать вопрос
@pozner88

Как отправить аргумент функции что бы он воспринимался pycharm при работе с sql?

Создаю тг бота с библиотекой aiorgam необходимо создавать бд,для этого обратился к библиотеке SQL.
Чтобы не загромождать основной код сделал отдельный файл с функциями обращения к SQL, и прочими необходимыми вещами. Когда вызывая функцию записи в БД выдает ошибку
TypeError: db_table_val() missing 1 required positional argument: 'date'

Сам основной код
import sqlite3 as sq
from aiogram import Bot, Dispatcher, executor, types
from table_sql import  create, db_table_val, add_data

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=storage)

con = sq.connect('databased.db')
cur = con.cursor()
con.execute(f"""CREATE TABLE IF NOT EXISTS users (user_id, username)""")
con.commit()
@dp.message_handler(commands=['start'])
async def start_bot(message: types.Message):
    await bot.send_message(message.from_user.id, text='the bot started' )
    await bot.send_message(chat_id=admin, text='the bot started ' 
                                               +"\n @"+str(message.from_user.username ))
    db_table_val(message.from_user.id, message.from_user.username, message.date)

И код функции
import sqlite3 as sq
import aiogram

con = sq.connect('databased.db')
cur = con.cursor()
sq.connect('databased.db') as con:
con.execute(f"""CREATE TABLE IF NOT EXISTS {message.from_user.username} (user_id, username, date)""")
con.commit()
def db_table_val(message, user_id, username, date:str ):
        cur.execute(f'INSERT INTO {message.from_user.username} (user_id, username, date) VALUES (?, ?, ?)',
                       (user_id, username, date))

        con.commit()

При этом если не записывать функцию в отдельном файле все работает нормально.
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@kirillinyakin
У вас же в функцию db_table_val должно передаться 4 аргумента, а Вы передаете в основной функции только 3, о чем и говорить ошибка
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы