import sqlite3
conn = sqlite3.connect('date_base.sqlite')
c = conn.cursor()
perehod = 0
def dob(dobname,dobnum):
c.execute("INSERT INTO " + login + " (name,num) VALUES ('%s','%s')"%(dobname,dobnum))
conn.commit()
def delete():
del_chel = input('Кого: ')
c.execute("DELETE FROM " + login + " WHERE (name) = ('%s');"%(del_chel))
conn.commit()
#команда вывода одного человека
def people():
c.execute("SELECT name, num FROM " + login + " WHERE (name) = ('%s');"%(chel))
conn.commit()
p = c.fetchone()
if p == None:
print('Такого человека нет в списке!')
else:
print(" Имя: "+p[0]+" | Номер: "+p[1])
#функция регистраци, создание таблицы
def table_create():
c.execute('CREATE TABLE ' + name + '( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"name" TEXT NOT NULL,"num" TEXT NOT NULL);')
conn.commit()
#Функция занесения пользователя в базу
def add_user(username,userpass):
c.execute("INSERT INTO users (name,password) VALUES ('%s','%s')"%(username,userpass))
conn.commit()
#функция входа
def enter(loginname,lpass):
c.execute("SELECT name,password FROM users WHERE (name, password) = ('%s', '%s');"%(loginname, lpass))
conn.commit()
lg = c.fetchone()
lg_2 = lg
if lg_2 == None:
a = 'Вход не выполнен'
print(a)
print('Не верный Логин или Пароль!')
exit()
#print(lg_2)
else:
#print(lg_2)
a = 'Вход выполнен'
print(a)
#работа
cmd = input('Вход/Регистрация\n')
if cmd == 'Регистрация':
#Вводим данные
name = input("Введите Логин\n")
passwd = input("Введите Пароль\n")
print('\n')
#Делаем запрос в базу
#print("Список пользователей:\n")
add_user(name,passwd)
table_create()
#c.execute('SELECT * FROM users')
#row = c.fetchone()
#выводим список пользователей в цикле
#while row is not None:
#print("id:"+str(row[0])+" Логин: "+row[1]+" | Пароль: "+row[2])
#row = c.fetchone()
print('Войдите в систему')
login = input('Логин\n')
l_pass = input('Пароль\n')
enter(login, l_pass)
perehod = 1
elif cmd == 'Вход':
login = input('Логин\n')
l_pass = input('Пароль\n')
enter(login, l_pass)
perehod = 1
if perehod == 1:
print('TelephonBook v. Beta 0.1\n')
k = 1
while k > 0:
comand = input('Введите команду: ')
if comand == 'Всё':
c.execute('SELECT * FROM ' + login)
row = c.fetchone()
while row is not None:
print(" Имя: "+row[1]+" | Номер: "+row[2])
row = c.fetchone()
elif comand == 'Человек':
chel = input('Введите Имя: ')
people()
elif comand == 'Редакт':
redact = input('Удалить/Добавить')
if redact == 'Удалить':
c.execute("SELECT name FROM " + login)
pokaz = c.fetchone()
print(" Имя: "+pokaz[0])
delete()
elif redact == 'Добавить':
name_r = input('Имя: ')
num_r = input('Номер: ')
dob(name_r,num_r)
c.execute('SELECT * FROM ' + login)
conn.commit()
ro = c.fetchone()
while ro is not None:
print(" Имя: "+ro[1]+" | Номер: "+ro[2])
ro = c.fetchone()
elif comand == 'exit':
print('exit')
exit()
else:
print('Команды не существует')
print('Ничего не выбрано, или не правильная команда')
print('Пока!')
# закрываем соединение с базой
c.close()
conn.close()
exit()
execute
и commit
, это при том что функций у тебя толком то и нет. А дальше что? Сотню раз по всему коду будешь повторять одни и те же строки? Почитай про DRY. Простейший пример:class sql_wrapper:
def __init__(self):
self.connection = sqlite3.connect('foo.db')
self.cursor = self.connection.cursor()
def select(self, sql):
return self.cursor.execute(sql)
def execute(self, sql):
self.cursor.execute(sql)
self.connection.commit()
def close(self):
self.connection.close()
sw = sql_wrapper()
rows = sw.select('SELECT * FROM some_table')
for row in rows:
print(row)
sw.close()
if-else
очень плохо читается и слишком разрастается, лучше каждое действие записывать отдельной функцией, а вызов совершать хотя бы так:def foo():
print('print foo')
def bar():
print('print bar')
commands = {
'foo': foo, 'bar': bar
}
user_input = input().lower()
if commands.get(user_input, None) is not None:
commands[user_input]()
;