Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sqlite3
- from sqlite3 import Error
- class DB:
- def __init__(self, dbname):
- try:
- self.connect = sqlite3.connect(dbname)
- self.cursor = self.connect.cursor()
- except Error:
- print("Ошибка подключения к базе данных")
- else:
- print(f"connect to {dbname}")
- def table_is_exist(self, table_name):
- sql = f"""SELECT name
- FROM sqlite_master
- WHERE type='table' AND name='{table_name}';"""
- self.cursor.execute(sql)
- rows = self.cursor.fetchall()
- return len(rows) == 1
- def create_tables(self):
- if not self.table_is_exist('notes'):
- sql = """
- CREATE table notes(
- id integer PRIMARY KEY AUTOINCREMENT,
- date_note datetime,
- title text,
- note_text text,
- is_done integer
- );
- """
- self.cursor.execute(sql)
- def add_note(self, date_note, title, note_text):
- sql = """
- INSERT INTO notes(date_note,
- title,
- note_text)
- VALUES(?, ?, ?)
- """
- self.cursor.execute(sql, (date_note, title, note_text))
- self.connect.commit()
- def read_notes(self):
- sql = """SELECT id, date_note, title, note_text, is_done
- FROM notes
- """
- self.cursor.execute(sql)
- rows = self.cursor.fetchall()
- for row in rows:
- print(row)
- def delete_record(self, id_record):
- if type(id_record) == type(1):
- sql = f"""DELETE FROM notes WHERE id = {id_record}
- """
- self.cursor.execute(sql)
- self.connect.commit()
- else:
- print("Тип параметра не число! Хакер чтоли?")
- def note_done(self, id_record):
- if type(id_record) == type(1):
- sql = f"""UPDATE notes
- SET is_done = 1
- WHERE id = ?
- """
- self.cursor.execute(sql, [id_record])
- self.connect.commit()
- else:
- print("Тип параметра не число! Хакер чтоли?")
- def show_notes(self, is_done):
- if is_done:
- sql = """SELECT * FROM notes WHERE is_done = 1
- """
- print("Выполненные задачи")
- else:
- sql = """SELECT * FROM notes WHERE
- is_done = 0
- OR is_done IS Null
- """
- print("Не выполненные задачи")
- self.cursor.execute(sql)
- rows = self.cursor.fetchall()
- for row in rows:
- print(row[0], row[2])
- def update_record(self):
- pass
- db = DB("my_notes.db")
- #db.create_tables()
- # db.note_done(2)
- # db.delete_record(5)
- #print("SELECT notes #1")
- #db.read_notes()
- #db.add_note('2020-12-23 9:00:00',
- # 'Нарядить елку!',
- # "Купить игрушки и нарядить елку")
- #db.add_note('2020-12-22 9:00:00',
- # 'Захватить мир!',
- # "Стать повелителем планеты Земля!")
- #print("SELECT notes #2")
- #db.read_notes()
- #db.show_notes(True)
- #db.show_notes(False)
- def help():
- print("Notebook on sqlite3 version 1.0a")
- commands = {'help': 'Эта помощь',
- 'quit': 'Выход из программы',
- 'show doned': 'Показать выполненые записи.',
- 'show undoned': 'Показать не выполненые записи.',
- 'add': 'Добавление новой записи.',
- 'done': 'Пометить задачу по id как выполненную',
- 'del IDnum': 'Удаление записи по IDnum'
- }
- for key in commands.keys():
- print(f"\t{key} - '{commands[key]}'")
- command = ""
- while command != 'quit':
- command = input("command: ")
- if command == 'help':
- help()
- elif command == 'show doned':
- db.show_notes(True)
- elif command == 'show undoned':
- db.show_notes(False)
- elif command == 'add':
- date = input('Введите дату заметки в формате "YYYY-MM-DD H:M:S":')
- title = input('Заголовок сообщения:')
- text = input('Текст сообщения:')
- db.add_note(date, title, text)
- elif command == 'done':
- id = int(input('ID задачи для выполнения:'))
- db.note_done(id)
- elif command.split()[0] == 'del':
- db.delete_record(int(command.split()[-1]))
- else:
- print("Bye!")
Add Comment
Please, Sign In to add comment