66 lines
1.6 KiB
Python
66 lines
1.6 KiB
Python
import sqlite3
|
|
|
|
class City:
|
|
def __init__(self, connection : sqlite3.Connection, id = None, name = None):
|
|
self.connection = connection
|
|
self.id = id
|
|
self.name = name
|
|
|
|
def load_by_id(self):
|
|
cur = self.connection.cursor()
|
|
row = cur.execute("SELECT * FROM cities WHERE id = ?", (self.id,)).fetchone()
|
|
|
|
if row == None:
|
|
return False
|
|
|
|
self._set_row_values(row)
|
|
|
|
cur.close()
|
|
return True
|
|
|
|
def load_by_name(self):
|
|
cur = self.connection.cursor()
|
|
row = cur.execute("SELECT * FROM cities WHERE name = ?", (self.name,)).fetchone()
|
|
|
|
if row == None:
|
|
return False
|
|
|
|
self._set_row_values(row)
|
|
|
|
cur.close()
|
|
return True
|
|
|
|
def save(self):
|
|
cur = self.connection.cursor()
|
|
cur.execute("""
|
|
INSERT INTO cities
|
|
(id, name) VALUES (?, ?)
|
|
""", (self.id, self.name))
|
|
|
|
self.connection.commit()
|
|
cur.close()
|
|
return True
|
|
|
|
def update(self):
|
|
cur = self.connection.cursor()
|
|
cur.execute("""
|
|
UPDATE cities SET
|
|
name = ?
|
|
WHERE id = ?
|
|
""", (self.name, self.id))
|
|
|
|
self.connection.commit()
|
|
cur.close()
|
|
return True
|
|
|
|
def delete(self):
|
|
cur = self.connection.cursor()
|
|
cur.execute("""DELETE FROM cities WHERE id = ?""", (self.id))
|
|
self.connection.commit()
|
|
cur.close()
|
|
return True
|
|
|
|
def _set_row_values(self, row):
|
|
self.id = row[0]
|
|
self.name = row[1]
|
|
return self |