-
Notifications
You must be signed in to change notification settings - Fork 2
/
server.py
45 lines (32 loc) · 1.03 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import sys
from pathlib import Path
### BOILERPLATE TO MINIMIZE DEMO SETUP FOR YOU, IGNORE ###
CUR_DIR = Path(__file__).resolve().parent
sys.path.append(str(CUR_DIR.parent))
import todo
from bottle import TEMPLATE_PATH, debug, redirect, request, route, run, template
TEMPLATE_PATH.append(str(CUR_DIR))
### END BOILER PLATE ###
@route("/")
def index():
tasks = todo.list_todos()
counts = todo.count_todos()
return template("index", tasks=tasks, counts=counts)
@route("/tasks/", method="POST")
def add():
title = request.forms.get("title")
if title:
todo.add_todo(title)
redirect("/")
@route("/tasks/<task_id:int>", method="PUT")
def toggle_task(task_id):
status = request.forms.get("task")
todo.set_task_status(task_id, bool(status))
return template("_task", task=todo.get_task(task_id))
@route("/tasks/<task_id:int>", method="DELETE")
def delete(task_id):
todo.delete_todo(task_id)
return ""
if __name__ == "__main__":
debug(True)
run(host="localhost", port=8080, reloader=True)