Hallo an alle ich habe eine Skript welches prüfen soll ob eine Tabelle schon anliegt und wenn nicht diese erzeugen soll.
An sich kein Problem aber das ganze mit Python und Klassen sieht schon anders aus. Da ich keinen Fehler mehr sehe wolle ich mal fragen ob ihr noch einen entdeckt. Ein Print mit “db created” erhalte ich aber die Tabelle wird nicht erzeugt.
import psycopg2
import psycopg2.extras
hostname = ‘192.168.178.29’
database = ‘IOT_project’
username = ‘postgres’
pwd = ‘postgres’
port_id = 5432
conn = None
cur = None
conn = psycopg2.connect(
host=hostname,
dbname=database,
user=username,
password=pwd,
port=port_id)
class Schema:
def init(self):
# self.conn = psycopg2.connect(host=hostname, dbname=database, user=username, password=pwd, port=port_id)
self.conn = conn.cursor() # ohne Zusatzbibliothek import psycopg2.extras
self.create_todo_table()
def create_todo_table(self):
# query = """
# CREATE TABLE IF NOT EXISTS public.todo9
# (
# ids serial,
# title character varying(40),
# description character varying(100),
# PRIMARY KEY (ids)
# );
# """
query = '''CREATE TABLE IF NOT EXISTS emp (
id int PRIMARY KEY,
name varchar(40) NOT NULL,
salary int,
dept_id varchar(30)) '''
self.conn.execute(query)
print("db created")
class TodoModel:
def __init__(self):
self.conn = conn.cursor()
def create(self, title, description):
query = f'insert into public.todo9 (Title, Description) values("{title}","{description}")'
result = self.conn.execute(query)
self.conn.commit()
return f"OK {result.lastrowid}"
def get_all(self):
query = f'Select * from public.todo9'
result = self.conn.execute(query).fetchall()
return result
PS: wie kann ich Code kennzeichnen?