diff options
| author | Andrew <saintruler@gmail.com> | 2019-07-07 15:40:51 +0400 |
|---|---|---|
| committer | Andrew <saintruler@gmail.com> | 2019-07-07 15:40:51 +0400 |
| commit | f41cd316889dcbdc62e22e6622a6ecea4a435084 (patch) | |
| tree | 7a3126c2db94ba669b046777ad3cefecb9955a2d /day9/task5/main.py | |
| parent | 8ebc8b62e647353756288a77f2d17774ef78634c (diff) | |
WIP: Добавлено изменение отдельных полей в таблице.
Diffstat (limited to 'day9/task5/main.py')
| -rw-r--r-- | day9/task5/main.py | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/day9/task5/main.py b/day9/task5/main.py index 738afbe..d5bcbb8 100644 --- a/day9/task5/main.py +++ b/day9/task5/main.py @@ -1,21 +1,29 @@ from router import route -from utils import render_template, parse_query, NOT_FOUND_CODE -from database import db +from utils import render_template, NOT_FOUND_CODE from config import SERVER_HOST, SERVER_PORT +import logging +from sys import stdout + @route('/update', ['POST']) def update_post(query, *args): - expressions, conditions = parse_query(query) + service_id = query['service_id'] + permitted_fields = db_column_names() + permitted_fields.remove('service_id') + + query_set = [] + for field_name, value in query.items(): + if field_name in permitted_fields: + query_set.append(f'{field_name}="{value}"') cursor = db.cursor() - cursor.execute('UPDATE `table_task1` SET {} WHERE {}'.format( - expressions, conditions + cursor.execute("UPDATE `table_task1` SET {} WHERE {};".format( + ','.join(query_set), f'service_id="{service_id}"' )) - result = cursor.fetchall() cursor.close() - return f'<h1>UPDATE: {result}</h1>' + return f'<h1>Database Updated</h1>' @route('/delete', ['POST']) @@ -30,19 +38,15 @@ def add_post(query, *args): @route('/get', ['POST']) def db_get(query, *args): + table_headers = db_column_names() cursor = db.cursor() if query['type'] == 'full': - cursor.execute('DESCRIBE table_task1;') - table_structure = cursor.fetchall() - cursor.execute('SELECT * FROM table_task1;') content = cursor.fetchall() cursor.close() - table_headers = [field[0] for field in table_structure] - json_content = [] for row in content: new_row = [] @@ -53,6 +57,7 @@ def db_get(query, *args): json_content.append(new_row) return {'headers': table_headers, 'content': json_content} + elif query['type'] == 'single_id': cursor.execute(f'SELECT * FROM table_task1 WHERE service_id="{query["service_id"]}";') content = cursor.fetchone() @@ -65,7 +70,7 @@ def db_get(query, *args): col = str(col) json_content.append(col) - return json_content + return dict(zip(table_headers, json_content)) return NOT_FOUND_CODE @@ -73,10 +78,24 @@ def db_get(query, *args): @route('/') def index_get(query, *args): data = render_template('index.html') - return data +def prepare_logger(): + logger = logging.getLogger('tableApp') + logger.setLevel(logging.INFO) + + sh = logging.StreamHandler(stdout) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + sh.setFormatter(formatter) + logger.addHandler(sh) + + if __name__ == '__main__': + prepare_logger() + from server import start_server + from database import db, db_column_names + + logging.getLogger('tableApp').info(f'Starting server...') start_server(SERVER_HOST, SERVER_PORT) |