Форум сайта python.su
Доброго времени суток, помогите разобраться, как можно реализовать данную тему:
Есть БД, данные выводятся в календарь действий (html-таблицу), необходимо при нажатии на действие открывать форму для редактирования (что бы можно было изменить статус и исполнителя данного действия)
Т.е. нажали на действие, через выпадающий список изменили исполнителя, статус и нажали “Сохранить”
Я так понимаю тут нужно как то через метод POST передавать данные в sql
Python:
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;
Офлайн
IceTonyНет, через “POST”, “GET” (не важно), передавать данные серверу, а он уже будет передавать их в базу.
Я так понимаю тут нужно как то через метод POST передавать данные в sql
Отредактировано Iskatel (Ноя. 29, 2016 19:50:23)
Офлайн
IskatelМожете показать на моем примере работу с этими методами?
Нет, через “POST”, “GET” (не важно), передавать данные серверу, а он уже будет передавать их в базу.
Отредактировано IceTony (Ноя. 29, 2016 20:56:44)
Офлайн
IceTony
Можете показать на моем примере работу с этими методами?
Офлайн
Это относительно просто делается через админку джанги.
Офлайн
FishHookДело в том, что нужно без фреймворков написать
Это относительно просто делается через админку джанги.
Офлайн