Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ломаю голову sqlite3 python

e о Мастер (1369), на голосовании 7 часов назад
Минут 20 не могу понять что не так с кодом. Просто не находит столбец status а таблице, хотя он там есть. Вот 3 файла пожалуйста объясните
main.py
data.py
delivery.py
Запускаю delivery и потом main, возвращает ошибку 500 messages has not column named status
Голосование за лучший ответ
RatÆCat Оракул (62178) 1 месяц назад
Индексы с 0 начинаются, а у тебя в data с 1 в файле delivery.

А вообще дебагером нужно учиться пользоваться, без понятия что тут да как
e оМастер (1369) 1 месяц назад
0 индекс это id, его не пишу
e оМастер (1369) 1 месяц назад
Ой
e оМастер (1369) 1 месяц назад
Спасибо, только щас дошло
e оМастер (1369) 1 месяц назад
А нет
e оМастер (1369) 1 месяц назад
Не дошло
RatÆCat Оракул (62178) e о, я просто увидел в том файле словарь data, там ты присваиваешь значения по индексам из другом местста от 1 до 6
RatÆCatОракул (62178) 1 месяц назад
может в этом проблема, может нет, хз
e о Мастер (1369) RatÆCat, сделал дебаг в файле delivery.py db = sqlite3.connect('database.db') c = db.cursor() c.execute(''' PRAGMA table_info(messages); ''') columns = c.fetchall() for column in columns: print(column) Вывелось: (0, 'id', 'INTEGER', 0, None, 1) (1, 'sender_name', 'TEXT', 1, None, 0) (2, 'sender_address', 'TEXT', 1, None, 0) (3, 'getter_name', 'TEXT', 1, None, 0) (4, 'getter_address', 'TEXT', 1, None, 0) (5, 'info', 'TEXT', 0, None, 0) Как так, если в файле data.py выводится ещё и 6 столбец status
e оМастер (1369) 1 месяц назад
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 392-561-017
(0, 'id', 'INTEGER', 0, None, 1)
(1, 'sender_name', 'TEXT', 1, None, 0)
(2, 'sender_address', 'TEXT', 1, None, 0)
(3, 'getter_name', 'TEXT', 1, None, 0)
(4, 'getter_address', 'TEXT', 1, None, 0)
(5, 'info', 'TEXT', 0, None, 0)
falied to create delivery: table messages has no column named status
127.0.0.1 - - [11/Dec/2024 01:45:38] "POST /create_delivery_request HTTP/1.1" 500 -
RatÆCat Оракул (62178) e о, внутри файла data у тебя 7 аргументов, т.е. (0, 'id', 'INTEGER', 0, None, 1) возидно лишний или что-то такое
RatÆCatОракул (62178) 1 месяц назад
Я не шарю как заполняется база данных, но возможно из-за него в таблицу не попадает status, т.к. места не хватает
Иван Рудской Мастер (2165) 1 месяц назад
Мб потому что у тебя в деливери запрос в try закомментирован?
c.execute('''
INSERT INTO messages(sender_name, sender_address, getter_name, getter_address, info, status)
VALUES(?, ?, ?, ?, ?, ?)
''', (sender_name, sender_address, getter_name, getter_address, info, status))
e оМастер (1369) 4 недели назад
Он не закомментирован
Иван Рудской Мастер (2165) e о, ''' три такие штуки вроде как комментарии, или я что-то не понимаю в пайтоне?
Похожие вопросы