summaryrefslogtreecommitdiff
path: root/day9/task5/main.py
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2019-07-07 15:40:51 +0400
committerAndrew <saintruler@gmail.com>2019-07-07 15:40:51 +0400
commitf41cd316889dcbdc62e22e6622a6ecea4a435084 (patch)
tree7a3126c2db94ba669b046777ad3cefecb9955a2d /day9/task5/main.py
parent8ebc8b62e647353756288a77f2d17774ef78634c (diff)
WIP: Добавлено изменение отдельных полей в таблице.
Diffstat (limited to 'day9/task5/main.py')
-rw-r--r--day9/task5/main.py47
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)