From a47e9946ba94b2c8b6d0f29f937e47f929d2edae Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 8 Jul 2019 00:58:50 +0400 Subject: =?UTF-8?q?WIP:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day9/task5/main.py | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) (limited to 'day9/task5/main.py') diff --git a/day9/task5/main.py b/day9/task5/main.py index c49852a..019ff8b 100644 --- a/day9/task5/main.py +++ b/day9/task5/main.py @@ -9,12 +9,21 @@ from sys import stdout @route('/static/(.*?)/(.*?)/?') def return_static(query, *args): - if args[0] in ['css', 'js', 'images']: + if args[0] in ['css', 'js']: try: with open(STATIC_FILES_PATH + f'/{args[0]}/{args[1]}', encoding='utf-8') as f: data = f.read() - return data + return args[0], {'js': 'javascript', 'css': 'css'}[args[0]], data + + except (PermissionError, FileNotFoundError): + return '' + elif args[0] == 'images': + try: + with open(STATIC_FILES_PATH + f'/{args[0]}/{args[1]}', 'rb') as f: + data = f.read() + + return 'image', args[1].split('.')[-1], data except (PermissionError, FileNotFoundError): return '' @@ -24,19 +33,22 @@ def upload_file(query, *args): try: data = query['files'][0]['data'].decode() except (UnicodeDecodeError, KeyError, IndexError): - return '

Error while reading file

' + return 'Return to main page

Error while reading file

' permitted_headers = db_column_names() try: data = list(csv.reader(data.strip().splitlines(), delimiter=';', quotechar='"')) if len(data[0]) != len(permitted_headers) or set(data[0]) != set(permitted_headers): - return '

File format error

' + return 'Return to main page

File format error

' except IndexError: - return '

File format error

' + return 'Return to main page

File format error

' + + cursor = db.cursor() + cursor.execute("START TRANSACTION; DELETE FROM `table_task1`; COMMIT;") + cursor.close() for row in data[1:]: - cursor = db.cursor() values = [] for i in range(len(row)): if row[i] == 'NULL': @@ -49,12 +61,17 @@ def upload_file(query, *args): values.append(value) - cursor.execute( "START TRANSACTION; INSERT INTO `table_task1` ({}) VALUES ({}); COMMIT;".format( - ','.join(data[0]), ','.join(values) - )) + cursor = db.cursor() + cursor.execute( + "START TRANSACTION; " + "INSERT INTO `table_task1` ({}) VALUES ({}); " + "COMMIT;".format( + ','.join(data[0]), ','.join(values) + ) + ) cursor.close() - return '

File uploaded

' + return 'Return to main page

File uploaded

' @route('/api/update', ['POST']) @@ -74,7 +91,7 @@ def update_post(query, *args): )) cursor.close() - return f'

Database Updated {query}

' + return f'Return to main page

Database Updated {query}

' @route('/api/delete', ['POST']) @@ -83,7 +100,7 @@ def delete_post(query, *args): cursor = db.cursor() cursor.execute(f'START TRANSACTION; DELETE FROM `table_task1` WHERE service_id="{service_id}"; COMMIT;') - return f'

Database Updated {query}

' + return f'Return to main page

Database Updated {query}

' @route('/api/add', ['POST']) @@ -103,7 +120,7 @@ def add_post(query, *args): )) cursor.close() - return f'

Database Updated {query}

' + return f'Return to main page

Database Updated {query}

' @route('/get', ['POST']) -- cgit v1.2.3