diff --git a/.gitignore b/.gitignore index d0db495..81b2e1d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ files.* -*.log \ No newline at end of file +*.log +*.pyc \ No newline at end of file diff --git a/main_func.py b/main_func.py new file mode 100644 index 0000000..c95eab8 --- /dev/null +++ b/main_func.py @@ -0,0 +1,23 @@ +from settings.logger import log_function_call, logger +from utils import sql_insert + + +class MAIN_FUNC: + def __init__(self): + self.self = self + + @log_function_call + def create_log(self, data): + t = 'INSERT INTO sites_logs (site, page, data) VALUES (%s, %s, %s)' + v = (data['site'], data['page'], data['data']) + try: + res = sql_insert(t, v) + return True + except SystemError as e: + print(e) + return False + + +logger.info('START | 3/4 | Load main_func') +main_func = MAIN_FUNC() +logger.info('START | 4/4 | Success!') \ No newline at end of file diff --git a/start.py b/start.py new file mode 100644 index 0000000..057c24f --- /dev/null +++ b/start.py @@ -0,0 +1,10 @@ +from utils import * +from main_func import main_func + +data = { + 'page': 'testing', + 'site': 'test_work', + 'data': (1, 23, 'vok1no', (1, 2, 3)) +} +r = main_func.create_log(data) +print(r) \ No newline at end of file diff --git a/test.py b/test.py new file mode 100644 index 0000000..d4af824 --- /dev/null +++ b/test.py @@ -0,0 +1,24 @@ +import mysql.connector as mysql +import os +# from dotenv import load_dotenv +# load_dotenv() +# print(os.getenv('DB_HOST'), os.getenv('DB_USER'), os.getenv('DB_PW')) + +host = '81.19.136.150' +user = 'root' +passwd = '12323121231' +import traceback + +try: + import mysql.connector as mysql + l = mysql.connect( + host=host, + user=user, + password=passwd, + database='vok1no' + ) + print(l) + print("Подключение успешно") +except Exception as e: + print("Произошла ошибка:") + traceback.print_exc() \ No newline at end of file diff --git a/utils.py b/utils.py index aa83821..e05e52b 100644 --- a/utils.py +++ b/utils.py @@ -2,12 +2,14 @@ import os from dotenv import load_dotenv import mysql.connector import json -import functools from settings.logger import log_function_call, logger +logger.info('START | 0/4 | Load dotenv') + load_dotenv() try: + logger.info('START | 1/4 | Load DB') mydb = mysql.connector.connect( host=os.getenv('DB_HOST'), user=os.getenv('DB_USER'), @@ -18,6 +20,7 @@ except mysql.connector.Error as e: print(f"Ошибка при подключении к БД: {e}") mydb = None +logger.info('START | 2/4 | Load sql functions') @log_function_call def update_sql_connect(): global mydb # Указываем, что используем глобальную переменную @@ -58,9 +61,16 @@ def sql_insert(sql, val=None): if val is None: new_cursor.execute(sql) else: - if isinstance(val[2], list): - val = (val[0], val[1], json.dumps(val[2])) - new_cursor.execute(sql, val) + # Преобразуем все вложенные структуры в JSON + processed_val = [] + for item in val: + if isinstance(item, (list, tuple, dict)): + processed_val.append(json.dumps(item)) + else: + processed_val.append(item) + + new_cursor.execute(sql, processed_val) + mydb.commit() data = new_cursor.lastrowid new_cursor.close() @@ -93,29 +103,31 @@ def sql_update(sql, val=None): return True except mysql.connector.Error as e: raise SystemError(f'Ошибка sql_update: {str(e)}') + # Пример использования -t = 'INSERT INTO sites_logs (site, page, data) VALUES (%s, %s, %s)' -v = ('test', 'vok1no', [1, 'Vok1no', 89913, 0, 1, 'vok']) +# t = 'INSERT INTO sites_logs (site, page, data) VALUES (%s, %s, %s)' +# v = ('test', 'vok1no', [1, 'Vok1no', 89913, 0, 1, 'vok']) -try: - res = sql_insert(t, v) - print(f"ID новой записи: {res}") -except SystemError as e: - print(e) +# try: +# res = sql_insert(t, v) +# print(f"ID новой записи: {res}") +# except SystemError as e: +# print(e) -try: - res = sql_select('SELECT * FROM sites_logs') - print(res) -except SystemError as e: - print(e) +# try: +# res = sql_select('SELECT * FROM sites_logs') +# print(len(res)) +# except SystemError as e: +# print(e) -@log_function_call -def test_error(): - result = 10 / 0 - return result +# @log_function_call +# def test_error(): +# result = 10 / 0 +# return result -update_sql_connect() -test_error() \ No newline at end of file + +# update_sql_connect() +# test_error() \ No newline at end of file