import sqlite3
class SQLighter:
def __init__(self, database):
self.connection = sqlite3.connect(database, check_same_thread=False)
self.cursor = self.connection.cursor()
self.cursor.execute(
"CREATE TABLE IF NOT EXISTS stats (user_id INT, user_name TEXT, survived INT, infected INT)")
self.connection.commit()
def add_user(self, id, name, survived, infected):
with self.connection:
obj = self.cursor.execute("INSERT INTO `stats` (user_id, user_name, survived, infected) VALUES (?,?,?,?)",
(id, name, survived, infected))
self.connection.commit()
return obj
def get_nick(self, id):
with self.connection:
self.cursor.execute("SELECT user_id FROM stats WHERE user_id = ?", (id,)).fetchall()
def set_fast(self, id, survived, infected):
with self.connection:
self.cursor.execute("UPDATE stats SET infected = ?, survived = ? WHERE user_id = ?",
(infected, survived, id))
self.connection.commit()
def delete_table(self, table):
with self.connection:
self.cursor.execute(f"DROP TABLE {table}")
self.connection.commit()
def create_table(self):
self.cursor.execute(
"CREATE TABLE IF NOT EXISTS stats (user_id INT, user_name TEXT, survived INT, infected INT)")
self.connection.commit()
sql_lighter = SQLighter("database.db")
sql_lighter.delete_table("stats")
sql_lighter.create_table()
sql_lighter.add_user(982543922, "Вова", 1, 1)
sql_lighter.add_user(754651730, "Андрей", 2, 2)
sql_lighter.set_fast(982543922, 1, 1)
sql_lighter.set_fast(754651730, 2, 2)
sql_lighter.get_nick(754651730)
sql_lighter.get_nick(982543922)
conn = sqlite3.connect("db.db", check_same_thread=False)
cur = conn.cursor()
cur.execute("insert into users values ('name')"])
conn.commit
def add_user(self, id, name, survived, infected):
with self.connection:
obj = self.cursor.execute("""INSERT INTO `stats` (user_id, user_name, survived, infected) VALUES (?,?,?,?)""", (id, name, survived, infected))
self.commit()
return obj
import sqlite3
from threading import Lock
lock = Lock()
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
class DataBase:
def __init__(self, _db):
self._db = _db
self.conn = sqlite3.connect(_db, check_same_thread=False)
self.conn.row_factory = dict_factory
self.cur = self.conn.cursor()
def add_row(self, table, **params):
item = []
p = []
values=[]
for key, value in params.items():
item.append(str(key))
values.append(str(value))
p.append("?")
item = ",".join(item)
p = ",".join(p)
with lock:
self.cur.execute(f"insert into {table} ({item}) values ({p})", values)
self.conn.commit()
def update_row(self, table, check=None, **params):
item, values = "", []
for key, value in params.items():
if item == "":
item = item + f"{key}=?"
else:
item = item + f",{key}=?"
values.append(value)
with lock:
if check is None:
self.cur.execute(f"update {table} SET {item}", values)
else:
self.cur.execute(f"update {table} SET {item} WHERE {check}", values)
self.conn.commit()
def get_row(self, table, row='*', check=None):
if check is None:
with lock:
respone = self.cur.execute(f"SELECT {row} FROM {table}")
return respone.fetchall()
else:
with lock:
respone = self.cur.execute(f"SELECT {row} FROM {table} WHERE {check}")
return respone.fetchall()
def get_lat_row(self, table):
with lock:
sql = f"SELECT * FROM {table} ORDER BY id DESC LIMIT 1"
rsp = self.cur.execute(sql)
return rsp.fetchone()
if __name__ == "__main__":
db = DataBase("base.db")
db.add_row("users", user_id=432, text="fdsfsd") # добавить запись
db.update_row("users", check="user_id=432", text="f")# обновляем запись с нужным узерид
db.get_row("users", check="user_id=432") #получаем запись с нужным юзерид
class MessagHandler:
handlers = [Class1, Class2, Class3, ... , Class20]
def new_message(self, event):
for handler in self.handlers:
handler.handle(event)
span class = \ "searchmatch \"> Уфа </span> Результат запроса БД ПМО Ростовской области. Росстат. Получено "," timestamp ":" 2020-10-20T14: 57: 54Z "}, {" ns ": 0," title ":" Мустай Карим "," pageid ": 40230673," size ": 11673," wordcount ": 1024," snippet ":" Гимназия № 158 имени Мустая Карима Кировского района городского округа <span class = \ "searchmatch \"> город </span> <span class = \ "searchmatch \"> Уфа </span> Фото . img-fotki.yandex.ru & quot; Грандиозный бронзовый монумент Мустаю Кариму "," timestamp ":" 2020-09-17T16: 49: 49Z "}, {" ns ": 0," title ":" Зайнулла Расулев "," pageid ": 35635610," size ": 5314," wordcount ": 484," snippet " title ":" Административное деление Башкортостана "," pageid ": 735399," size ": 20053," wordcount ": 404," snippet ":" (городские населенные области): город республиканского подчинения (<span class = \ "searchmatch \"> город </span> республиканского значения); городской округ (городской район) - административный »,« timestamp »:« 2020-06-21T13: 27: 29Z »}, {« ns »: 0,« title »:« Список азербайджанских экзонимов »,« pageid »: 59217497, "size": 97912, "wordcount": 7422, "snippet": "Асфандияров А.З. История сел и деревень Башкортостана и сопредельных территорий. <span class = \ "searchmatch \"> Уфа </span>: Китап. 2009. [11] Архивировано 21 марта 2019 года в Wayback Machine В Бардымском ","
{"city": "Уфа",
"Description": "Уфа – крупный научный, культурный, промышленный город в России, столица республики Башкортостан. Город был основан в месте слияния двух рек: Уфы и Белой. Уфа находится в ста километрах западнее хребтов Башкирского Урала. Город занимает площадь свыше семисот квадратных километров.",
"photo": ["photo.ufa/ufa.jpg", "ufa.ru/foto.jpg"]
}
sql_lighter.delete_table("stats")
sql_lighter.create_table()
Так же уберите эти 2 функции из класса