Пытаюсь юзать код:
Создание базы
import sqlite3 as sq
def sql_strt():
global base, cur
base = sq.connect('partnerbase1.db')
cur = base.cursor()
if base:
print('Соединился с базой')
base.execute('CREATE TABLE IF NOT EXISTS base1(name TEXT)')
base.commit()
async def sql_add_command(state):
async with state.proxy() as data:
cur.execute('INSERT INTO base1 VALUES(?,?,?,?)',tuple(data.values()))
base.commit()
подключение в FSM так как надо вводимый емейл записывать в базу
#@dp.message_handler(commands='Марафон', state=None)
async def cm_start(message : types.Message):
await FSMPartnerbaze1.name.set()
await message.answer('Пожалуйста, укажите Вашу почту. Она нужна для корректной работы с Вами!')
#Ловим ответ и пишем в словарь
#@dp.message_handler(state=FSMPartnerbaze1.name) #временно для понимания
async def get_email(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['name'] = message.text
email = message.text
await state.update_data(
{'email': email}
)
regex = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+')
if re.fullmatch(regex, email):
print("Valid email")
await sqlite_db.sql_add_command(state)
await state.finish()
в мейне говорят надо так
async def on_startup():
print ('бот вышел онлайн')
sqlite_db.sql_start
ну и не работает
выдает ошибку
NameError: name 'cur' is not defined
Почему она возникает?
Аналогию построения брал отсюда
https://www.youtube.com/watch?v=m0ZRms4p7fc&t=582s