forked from katet3/TSU_IntroductionSoftwareEngineering
-
Notifications
You must be signed in to change notification settings - Fork 0
/
database_operations.py
73 lines (68 loc) · 2.53 KB
/
database_operations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import psycopg2
from psycopg2 import sql
# Функция для установления соединения с базой данных
# Смотреть в докер файле
def connect_db():
return psycopg2.connect(
dbname="postgres", # Имя базы данных
user="postgres", # Имя пользователя
password="12345678", # Пароль
host="localhost", # Адрес сервера, localhost для локального сервера
port="5432" # Порт подключения
)
# Функция для вставки данных в таблицу
def insert_data(token, expiration, data):
query = sql.SQL("INSERT INTO jwt_tokens (token, expiration, data) VALUES (%s, %s, %s);")
conn = None
try:
conn = connect_db()
cur = conn.cursor()
cur.execute(query, (token, expiration, data))
conn.commit()
cur.close()
print("Data inserted successfully")
except Exception as e:
print(f"Error: {e}")
finally:
if conn is not None:
conn.close()
# Функция для удаления данных из таблицы
def delete_data(token):
query = sql.SQL("DELETE FROM jwt_tokens WHERE token = %s;")
conn = None
try:
conn = connect_db()
cur = conn.cursor()
cur.execute(query, (token))
conn.commit()
cur.close()
print("Data deleted successfully")
except Exception as e:
print(f"Error: {e}")
finally:
if conn is not None:
conn.close()
# Функция для обновления данных в таблице
def update_data(token, new_expiration, new_data):
query = sql.SQL("UPDATE jwt_tokens SET expiration = %s, data = %s WHERE token = %s;")
conn = None
try:
conn = connect_db()
cur = conn.cursor()
cur.execute(query, (new_expiration, new_data, token))
conn.commit()
cur.close()
print("Data updated successfully")
except Exception as e:
print(f"Error: {e}")
finally:
if conn is not None:
conn.close()
# Примеры использования функций
if __name__ == "__main__":
# Вставка данных
insert_data('token1', '2024-01-01 00:00:00', '{"user": "user1", "roles": ["admin", "user"]}')
# Удаление данных
delete_data('token2')
# Обновление данных
update_data('token3', '2024-12-31 00:00:00', '{"user": "user3", "roles": ["editor", "admin"]}')