Skip to content

Instantly share code, notes, and snippets.

@DxDiagDx
Last active November 24, 2022 05:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DxDiagDx/f597390f59b03e393128c58fbc29ae8f to your computer and use it in GitHub Desktop.
Save DxDiagDx/f597390f59b03e393128c58fbc29ae8f to your computer and use it in GitHub Desktop.
Скрипт для работы с базой данных SQLite
import sqlite3
from typing import Dict, List, Tuple
def insert(database: str, table: str, column_values: Dict):
with sqlite3.connect(database) as conn:
cursor = conn.cursor()
columns = ", ".join(column_values.keys())
values = [tuple(column_values.values())]
placeholders = ", ".join("?" * len(column_values.keys()))
query = f"INSERT INTO {table} "\
f"({columns}) "\
f"VALUES ({placeholders})"
cursor.executemany(query, values)
conn.commit()
def insert_many(database: str, table: str, column_values: List):
with sqlite3.connect(database) as conn:
cursor = conn.cursor()
columns = ", ".join(column_values[0].keys())
placeholders = ", ".join(':' + key for key in column_values[0].keys())
query = f"INSERT INTO {table} "\
f"({columns}) "\
f"VALUES ({placeholders})"
cursor.executemany(query, column_values)
conn.commit()
def update(database: str, table: str, column_values: Dict, where=None):
with sqlite3.connect(database) as conn:
cursor = conn.cursor()
placeholders = []
for key in column_values:
placeholders.append(f"{key} = :{key}")
values = ", ".join(placeholders)
if where:
query = f"UPDATE {table} SET {values} WHERE {where}"
else:
query = f"UPDATE {table} SET {values}"
cursor.execute(query, column_values)
conn.commit()
def fetchall(database: str, table: str, columns: List[str], where=None) -> List:
result = []
with sqlite3.connect(database) as conn:
cursor = conn.cursor()
columns_joined = ", ".join(columns)
if where:
query = f"SELECT {columns_joined} FROM {table} WHERE {where}"
else:
query = f"SELECT {columns_joined} FROM {table}"
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
dict_row = {}
for index, column in enumerate(columns):
dict_row[column] = row[index]
result.append(dict_row)
return result
def main():
pass
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment