main_func, улучшения

This commit is contained in:
vok1no 2025-10-22 05:04:32 +03:00
parent 7e29307f2f
commit 65132e1017
5 changed files with 93 additions and 23 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
files.* files.*
*.log *.log
*.pyc

23
main_func.py Normal file
View File

@ -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!')

10
start.py Normal file
View File

@ -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)

24
test.py Normal file
View File

@ -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()

View File

@ -2,12 +2,14 @@ import os
from dotenv import load_dotenv from dotenv import load_dotenv
import mysql.connector import mysql.connector
import json import json
import functools
from settings.logger import log_function_call, logger from settings.logger import log_function_call, logger
logger.info('START | 0/4 | Load dotenv')
load_dotenv() load_dotenv()
try: try:
logger.info('START | 1/4 | Load DB')
mydb = mysql.connector.connect( mydb = mysql.connector.connect(
host=os.getenv('DB_HOST'), host=os.getenv('DB_HOST'),
user=os.getenv('DB_USER'), user=os.getenv('DB_USER'),
@ -18,6 +20,7 @@ except mysql.connector.Error as e:
print(f"Ошибка при подключении к БД: {e}") print(f"Ошибка при подключении к БД: {e}")
mydb = None mydb = None
logger.info('START | 2/4 | Load sql functions')
@log_function_call @log_function_call
def update_sql_connect(): def update_sql_connect():
global mydb # Указываем, что используем глобальную переменную global mydb # Указываем, что используем глобальную переменную
@ -58,9 +61,16 @@ def sql_insert(sql, val=None):
if val is None: if val is None:
new_cursor.execute(sql) new_cursor.execute(sql)
else: else:
if isinstance(val[2], list): # Преобразуем все вложенные структуры в JSON
val = (val[0], val[1], json.dumps(val[2])) processed_val = []
new_cursor.execute(sql, 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() mydb.commit()
data = new_cursor.lastrowid data = new_cursor.lastrowid
new_cursor.close() new_cursor.close()
@ -94,28 +104,30 @@ def sql_update(sql, val=None):
except mysql.connector.Error as e: except mysql.connector.Error as e:
raise SystemError(f'Ошибка sql_update: {str(e)}') raise SystemError(f'Ошибка sql_update: {str(e)}')
# Пример использования # Пример использования
t = 'INSERT INTO sites_logs (site, page, data) VALUES (%s, %s, %s)' # t = 'INSERT INTO sites_logs (site, page, data) VALUES (%s, %s, %s)'
v = ('test', 'vok1no', [1, 'Vok1no', 89913, 0, 1, 'vok']) # v = ('test', 'vok1no', [1, 'Vok1no', 89913, 0, 1, 'vok'])
try: # try:
res = sql_insert(t, v) # res = sql_insert(t, v)
print(f"ID новой записи: {res}") # print(f"ID новой записи: {res}")
except SystemError as e: # except SystemError as e:
print(e) # print(e)
try: # try:
res = sql_select('SELECT * FROM sites_logs') # res = sql_select('SELECT * FROM sites_logs')
print(res) # print(len(res))
except SystemError as e: # except SystemError as e:
print(e) # print(e)
@log_function_call # @log_function_call
def test_error(): # def test_error():
result = 10 / 0 # result = 10 / 0
return result # return result
update_sql_connect()
test_error() # update_sql_connect()
# test_error()