@IceTony

Как редактировать БД из веб-формы?

Доброго времени суток, помогите разобраться в данной задаче:
Есть БД, данные выводятся в календарь действий (html-таблицу), необходимо при нажатии на действие открывать форму для редактирования (что бы можно было изменить статус и исполнителя данного действия)
Т.е. нажали на действие, через выпадающий список изменили исполнителя, статус и нажали “Сохранить”
Я так понимаю тут нужно как то через метод POST передавать данные в sql?

from http.server import BaseHTTPRequestHandler, HTTPServer
import sqlite3
 
 
html_text = '''<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Календарь событий</title>
  <style>
   #time {{
    width: 80px;
    }}
   #task {{
   width: 160px;
   }}
   #status {{
    width: 100px;
   }}
   #executor {{
    width: 50px;
   }}
   table {{
    background: white;
    color: black;
    border-spacing: 0px;
   }}
   td, th {{
    padding: 5px;
   }}
   th {{
       background: #00BFFF;
   }}
  </style>
 </head>
 <body>
  <table border="1">
   <tr>
    <th id="time">Время</th>
    <th id="task">Задача</th>
    <th id="status" >Статус</th>
    <th id="executor">Исполнитель</th>
   </tr>
   {html_rows}
 </table>
 </body>
</html>'''
 
row = '''
<tr>
    <td>{task_time}</td>
    <td>{task}</td>
    <td>{status}</td>
    <td>{executor}</td>
</tr>
'''
 
 
class testHTTPServer_RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
 
        conn = sqlite3.connect('db.db')
        cur = conn.cursor()
 
        cur.execute('SELECT * FROM tasks;')
        rows = cur.fetchall()
 
        html_rows = str()
 
        for task_time, task, status,executor in rows:
            html_rows += row.format(task_time=task_time, task=task, status=status, executor=executor)
 
        self.wfile.write(bytes(html_text.format(html_rows=html_rows), "utf8"))
        return
 
 
def run():
    print('starting server...')
    server_address = ('127.0.0.1', 8081)
    httpd = HTTPServer(server_address, testHTTPServer_RequestHandler)
    print('running server...')
    httpd.serve_forever()
 
run()


--
-- Файл сгенерирован с помощью SQLiteStudio v3.1.1 в Вт ноя 29 15:43:33 2016
--
-- Использованная кодировка текста: System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;
-- Таблица: executors
CREATE TABLE executors (executor STRING PRIMARY KEY);
INSERT INTO executors (executor) VALUES ('Папа');
INSERT INTO executors (executor) VALUES ('Мама');
INSERT INTO executors (executor) VALUES ('Сын');
INSERT INTO executors (executor) VALUES ('Дочь');
-- Таблица: statuss
CREATE TABLE statuss (status STRING PRIMARY KEY);
INSERT INTO statuss (status) VALUES ('Не выполнено');
INSERT INTO statuss (status) VALUES ('Выполнено');
-- Таблица: tasks
CREATE TABLE tasks (task_time DATETIME PRIMARY KEY, task STRING, status STRING REFERENCES statuss (status), executor STRING REFERENCES executors (executor));
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-11-28 14:00:00', 'Сходить в магазин', 'Выполнено', 'Мама');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-11-28 17:00:00', 'Помыть машину', 'Выполнено', 'Папа');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-11-29 08:30:00', 'Сделать зарядку', 'Выполнено', 'Папа');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-11-29 10:00:00', 'Отвести сына в школу', 'Выполнено', 'Мама');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-11-30 19:00:00', 'Поиграть в игру', 'Не выполнено', 'Сын');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-11-30 20:00:00', 'Почитать книгу', 'Не выполнено', 'Дочь');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-12-01 07:00:00', 'Поехать на рыбалку', 'Не выполнено', 'Папа');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-12-01 13:00:00', 'Сделать маникюр', 'Не выполнено', 'Мама');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-12-02 17:00:00', 'Сделать уроки', 'Не выполнено', 'Сын');
INSERT INTO tasks (task_time, task, status, executor) VALUES ('2016-12-02 18:00:00', 'Посетить кружок танцев', 'Не выполнено', 'Дочь');
COMMIT TRANSACTION;
PRAGMA foreign_keys = on;


f9v67n6dJY.jpg
  • Вопрос задан
  • 371 просмотр
Пригласить эксперта
Ответы на вопрос 2
@akonovalov
Программист на компьютере
Предлагаю не мучиться и не "велосипедить", а перейти на Django - в числе всего прочего там есть относительно нормальная админка, в ней можно редактировать базу.
Ответ написан
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
через POST/GET Вы данные передадите скрипту, который их разберет и сделает то, что Вы в нем напрограммируете
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы