diff options
| author | Andrew <saintruler@gmail.com> | 2019-07-08 00:58:50 +0400 |
|---|---|---|
| committer | Andrew <saintruler@gmail.com> | 2019-07-08 00:58:50 +0400 |
| commit | a47e9946ba94b2c8b6d0f29f937e47f929d2edae (patch) | |
| tree | 8c32462b42a6648dfe8e6e9a73f70e3ae749bcbd /day9/task5/main.py | |
| parent | 5dc61e9d6a760e3a86b0bb459c0a628941069d95 (diff) | |
WIP: Добавлена кнопка для загрузки файлов.
Diffstat (limited to 'day9/task5/main.py')
| -rw-r--r-- | day9/task5/main.py | 43 |
1 files changed, 30 insertions, 13 deletions
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 '<h1>Error while reading file</h1>' + return '<a href="/">Return to main page</a><br><h1>Error while reading file</h1>' 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 '<h1>File format error</h1>' + return '<a href="/">Return to main page</a><br><h1>File format error</h1>' except IndexError: - return '<h1>File format error</h1>' + return '<a href="/">Return to main page</a><br><h1>File format error</h1>' + + 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 '<h1>File uploaded</h1>' + return '<a href="/">Return to main page</a><br><h1>File uploaded</h1>' @route('/api/update', ['POST']) @@ -74,7 +91,7 @@ def update_post(query, *args): )) cursor.close() - return f'<h1>Database Updated {query}</h1>' + return f'<a href="/">Return to main page</a><br><h1>Database Updated {query}</h1>' @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'<h1>Database Updated {query}</h1>' + return f'<a href="/">Return to main page</a><br><h1>Database Updated {query}</h1>' @route('/api/add', ['POST']) @@ -103,7 +120,7 @@ def add_post(query, *args): )) cursor.close() - return f'<h1>Database Updated {query}</h1>' + return f'<a href="/">Return to main page</a><br><h1>Database Updated {query}</h1>' @route('/get', ['POST']) |