60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
|
|
import sqlite3 as lite
|
|
|
|
class DatabaseManager(object):
|
|
|
|
def __init__(self, path):
|
|
self.conn = lite.connect(path)
|
|
self.conn.execute('pragma foreign_keys = on')
|
|
self.conn.commit()
|
|
self.cur = self.conn.cursor()
|
|
|
|
def create_tables(self):
|
|
self.query('CREATE TABLE IF NOT EXISTS products (idx text, title text, body text, photo blob, price int, tag text)')
|
|
self.query('CREATE TABLE IF NOT EXISTS orders (cid int, usr_name text, usr_address text, products text)')
|
|
self.query('CREATE TABLE IF NOT EXISTS cart (cid int, idx text, quantity int)')
|
|
self.query('CREATE TABLE IF NOT EXISTS categories (idx text, title text)')
|
|
self.query('CREATE TABLE IF NOT EXISTS wallet (cid int, balance real)')
|
|
self.query('CREATE TABLE IF NOT EXISTS questions (cid int, question text)')
|
|
|
|
def query(self, arg, values=None):
|
|
if values == None:
|
|
self.cur.execute(arg)
|
|
else:
|
|
self.cur.execute(arg, values)
|
|
self.conn.commit()
|
|
|
|
def fetchone(self, arg, values=None):
|
|
if values == None:
|
|
self.cur.execute(arg)
|
|
else:
|
|
self.cur.execute(arg, values)
|
|
return self.cur.fetchone()
|
|
|
|
def fetchall(self, arg, values=None):
|
|
if values == None:
|
|
self.cur.execute(arg)
|
|
else:
|
|
self.cur.execute(arg, values)
|
|
return self.cur.fetchall()
|
|
|
|
def __del__(self):
|
|
self.conn.close()
|
|
|
|
|
|
'''
|
|
|
|
products: idx text, title text, body text, photo blob, price int, tag text
|
|
|
|
orders: cid int, usr_name text, usr_address text, products text
|
|
|
|
cart: cid int, idx text, quantity int ==> product_idx
|
|
|
|
categories: idx text, title text
|
|
|
|
wallet: cid int, balance real
|
|
|
|
questions: cid int, question text
|
|
|
|
'''
|