Для початку проясніть трошки хоча би за той файл "settings.py" - створення отак таблиці як на мене, то не є добре. Або воно автоматично має створити при виконанні міграцій (але це у вас не джанго ніяке), або мати у проекті спеціальний sql-файл, який легко натягується на базу у потрібному бд сервері. І налаштувань там в принципі ніяких нема (чому ж він зветься settings?), то є зайвий файл.
Далі, навіщо ускладнювати собі життя і розробляти простеньку програму із CLI у стилі MVC?
І нарешті, клас Contact - для чого він призначений? З одного боку, ініціалізується "новим контактом", з іншого боку - дозволяє проводити операції над усією базою. Як мінімум, це грубе порушення SRP (принцип єдиного обов'язку), а також виглядить жахливо.
Це те, що зразу кинулося у вічі. Детальніше не вдивлявся.