Здравствуйте уважаемые, я недавно изучаю python и вот поставил себе задачу написать консольный менеджер sqlite(ну или хотя бы попытаюсь) застрял вот на чём:
import sqlite3
import os
def menu():
name_base = vhod_bd()
col_col = None
while True:
print("работаем с <<", name_base, ">>")
print("""
================================================
УПРАВЛЕНИЕ БАЗОЙ ДАННЫХ
================================================
1 - Создание или открытие базы данных
2 - Добавление записей в таблицу
3 -
...
0 - Выход
""")
response = input("Ввод: ")
if response == "1":
sozd_db(name_base)
elif response == "2":
pass
elif response == "3":
pass
elif response == "4":
pass
elif response == "5":
pass
elif response == "0":
print("Выходим") # доработать
break
else:
print("Что-то не то, попробуйте еще раз.")
def vhod_bd():
name_base = input("Введите имя базы данных(если её нет, она будет создана): ")
# здесь будет несколько проверок ввода :)(для теста сойдет и так)
# проверим существует ли файл базы данных или нет
if os.path.exists(name_base):
print("База данных <<{0}>> открыта.".format(name_base))
else:
print("База данных <<{0}>> создана.".format(name_base))
return name_base
# подсоединимся к базе данных
def sozd_db(name_base):
# подсоединимся к базе
conn = sqlite3.connect(name_base)
curs = conn.cursor()
tblname = input("Введите имя таблицы: ")
kol_sbl()
stroka_sbl = named_stbl()
try:
tblcmd = ("create table {0} ({1})".format(tblname, stroka_sbl))
curs.execute(tblcmd)
except sqlite3.OperationalError:
print("Не получилось")
def kol_sbl(): # количество столбцов
global col_col
while True:
try:
col_col = int(input("Введите количество столбцов:(не более 10)"))
if col_col in range(0, 11): # здесь можно поменять кол-во столбцов
print("Количество ячеек: ", col_col)
else:
print("не то")
continue
break
except ValueError:
print("Что-то не то! ")
return col_col
def named_stbl():
str_pol1 = [] # здесь вводим имена для выбранного количества столбцов
for i in range(1, col_col + 1):
i = input("Введите имя столбца: ")
# data_types()
str_pol1.append(i)
stro1 = ", ".join(str_pol1)
return stro1
def data_types():
# tup = ("NULL", "INTEGER", "REAL", "TEXT", "BLOB")
tup1 = None
while True:
print("""Нажмите <<n>> для выбора типа 'NULL'
<<i>> для выбора типа 'INTEGER'
<<r>> для выбора типа 'REAL'
<<t>> для выбора типа 'TEXT'
<<b>> для выбора типа 'BLOB'
или <<0>> для отмены""")
tup1 = input("....")
tup1.lower()
if tup1 == "n":
print("Вы выбрали тип 'NULL'")
tup1 = "NULL"
break
elif tup1 == "i":
print("Вы выбрали тип 'INTEGER'")
tup1 = "INTEGER"
break
elif tup1 == "r":
print("Вы выбрали тип 'REAL'")
tup1 = "REAL"
break
elif tup1 == "t":
print("Вы выбрали тип 'TEXT'")
tup1 = "TEXT"
break
elif tup1 == "b":
print("Вы выбрали тип 'BLOB'")
tup1 = "BLOB"
break
elif tup1 == "0":
print("вы не выбрали тип")
tup1 = None
break
else:
print("что-то не то")
return tup1
def vvod_znach():
col_stbl = None
menu()
как передавать значения из функции в функцию, например если открыл бд и в цикле я работаю с ней пока не закрою и т. д., или кто подскажет в какую сторону двигаться? Может вообще gui надо или в данном случае проще классом? Надеюсь понятно объяснил проблему, спасибо