Files

37 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from dbtable import *
class CountriesTable(DbTable):
def table_name(self):
return self.dbconn.prefix + '"Сountries"'
def columns(self):
return {"country_id": ["serial", "PRIMARY KEY"],
"name": ["varchar(64)", "NOT NULL", "UNIQUE"]
}
def primary_key(self):
return ["country_id"]
def column_names_without_id(self):
res = sorted(self.columns().keys(), key = lambda x: x)
res.remove('country_id')
return res
def find_by_position(self, num):
sql = f"SELECT * FROM {self.table_name()} ORDER BY name LIMIT 1 OFFSET " + "%(offset)s"
cur = self.dbconn.conn.cursor()
cur.execute(sql, {"offset": num - 1})
return cur.fetchone()
def allbyname(self):
sql = f"SELECT * FROM {self.table_name()} ORDER BY name"
cur = self.dbconn.conn.cursor()
cur.execute(sql)
return cur.fetchall()
def findbyname(self, data):
sql = f"SELECT country_id FROM {self.table_name()} WHERE name = "+ "%s"
cur = self.dbconn.conn.cursor()
cur.execute(sql, (data,))
return cur.fetchall()
def delete_by_cid(self, cid):
sql = f"DELETE FROM {self.table_name()} WHERE country_id = " +"%s"
cur = self.dbconn.conn.cursor()
cur.execute(sql, (cid,))
self.dbconn.conn.commit()
return