Ломается функция при импорте
Есть такой код:
import sqlite3
connection = sqlite3.connect('database.sqlite', check_same_thread=False)
def client_add(connect):
cursor = connect.cursor()
try:
cursor.execute("""
INSERT INTO
clients (first_name, last_name, dob, email, created_at)
VALUES
("!", "!", "!", "!", "!")
""")
connect.commit()
print("Success!")
except Exception as e:
print(f"Error: {e}")
Когда запускаю client_add из своего файла - всё работает (в терминале Success, запись добавляется в БД). НО когда импортирую connection и client_add в другой модуль в виде:
from fastapi import FastAPI
from models.models import Client
from data import sqlite
app = FastAPI()
@app.post("/client_add")
def client_add(c: Client):
try:
sqlite.client_add(sqlite.connection)
except Exception as e:
print(f'Ошибка - {e}')
И кидаю POST запрос через postman, то в терминале также Success, но в БД новой записи нет.
Ответы (1 шт):
Автор решения: OlegXio
→ Ссылка
Насколько я понял, из второго кода строка from data import sqlite
значит, что структура ваша такая:
РабочаяПапка
├───ВторойКод.py
└───data
├───sqlite.py (Первый код)
└───database.sqlite (база)
И, вероятнее всего, ВторойКод.py запрашивает базу в папке РабочаяПапка, а не data. Вам нужно в connection указать полный путь (напр. C:/Users/Mikhail/РабочаяПапка/data/database.sqlite
)