summaryrefslogtreecommitdiff
path: root/day9/task5/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'day9/task5/main.py')
-rw-r--r--day9/task5/main.py43
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'])