1. Для вывода сообщений в CGI скрипте
2. Для работы с БД
Пожалуйста, опытные программисты укажите мне на недочеты или ошибки. И еще я не совсем понял про self. (Когда ее надо использовать, а когда нет).
class message:
'Выводит сообщение'
def __init__(self, message):
self.message = message
self.pattern = '<div class="{0}">{1}: {2}</div>'
def error(self, msg):
return self.pattern.format('error', self.message, msg)
def notice(self, msg):
return self.pattern.format('notice', self.message, msg)
def success(self, msg):
return self.pattern.format('success', self.message, msg)
class DataBase:
'Работа с БД'
def __init__(self, db):
self.db = db
self.conn = sqlite3.connect(self.db, detect_types = sqlite3.PARSE_DECLTYPES)
self.conn.isolation_level = None
self.cur = self.conn.cursor()
try:
self.cur.execute('PRAGMA foreign_keys = ON;')
self.cur.execute('select * from table1;')
except sqlite3.OperationalError:
pass
# если базы данных нет, то создаем её из схемы
# self.cur.executescript(open('schema.sql').read())
self.error = False
self.buffer = ''
def executeSQL(self, query, param=[]):
m = message('sqlite3')
if sqlite3.complete_statement(query):
self.error = False
try:
query = query.strip()
self.cur.execute(query, param)
if query.lstrip().upper().startswith('SELECT'):
self.buffer = self.cur.fetchall()
except sqlite3.Error as e:
self.error = True
self.buffer = m.error((e.args[0], query))
else:
self.error = True
self.buffer = m.error(('Синтаксическая ошибка', query))