tg_logger.setup(logger, token=token, users=users, tg_format="<b><u>%(name)s</u> : %(levelname)s</b>\n\n<code>%(message)s</code>")
file_handler = RotatingFileHandler(log_file, maxBytes=1024*1024, backupCount=10)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(file_handler)
logger.setLevel(logging.WARNING)
tg_handler = tg_logger.setup(logger, token=token, users=users, tg_format="<b><u>%(name)s</u> : %(levelname)s</b>\n\n<code>%(message)s</code>")
tg_handler.setLevel(logging.WARNING)
file_handler = RotatingFileHandler(log_file, maxBytes=1024*1024, backupCount=10)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(file_handler)
Указывал DECIMAL(3, 20)[], выдавало ошибку "неверный синтаксис для типа numeric".
ws.cell(row=..., column=...).value = ...
for sheet in wb.sheetnames:
ws = wb[sheet]
for i, value in enumerate(heading):
ws.cell(row=1, column=i+1).value = value
wb.save('Сборочный.xlsx')
for i in range(10):
....
if n1 % 10 == i:
(насчет подстановки данных с помощью "?") я не заметил в моём случае разницы между подстановкой данных и более мне привычными f-строками.
Насчет primary key я почитал в документации, я понял его "задачу" - каждая строка имеет свой уникальный идентификатор, но не до конца понял "а почему я так не могу?". После добавления primary key в таблицу добавляется просто еще одно правило которое (возможно) никак не сказывается на, например, поиске строки с указанным id: как было WHERE id = 1 так и осталось.
cursor.execute("INSERT INTO table1(id, embed) VALUES (?, ?)", (1, supertext))
cursor.execute("INSERT INTO table1(embed) VALUES (?)", (supertext, ))
cursor.execute(f"INSERT INTO table1 VALUES (1, '{supertext}')")
cursor.execute("INSERT INTO table1 VALUES (?, ?)", (1, supertext))
int primary key