datentrog/datentrog.py

55 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
import bottle
import sqlite3
application = bottle.default_app()
connection = sqlite3.connect("db.sqlite")
cursor = connection.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS visitors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
event TEXT,
time DATETIME,
name TEXT,
address TEXT,
contact TEXT
);
""")
@application.get("/")
@bottle.view("datentrog.tpl")
def datentrog_get():
return dict(event=bottle.request.query.get("event", "Heizhaus"))
@application.post("/")
@bottle.view("datentrog.tpl")
def datentrog_post():
data = {"feedback": True, "success": True}
for field in ("event", "name", "address", "contact"):
data[field] = bottle.request.forms.get(field, "")
data["success"] = data["success"] and data[field]
if data["success"]:
cursor.execute("""
INSERT INTO visitors (event, time, name, address, contact)
VALUES (:event, datetime('now'), :name, :address, :contact);
""", data)
connection.commit()
return data
@application.get("/cleanup")
def cleanup():
cursor.execute("""
DELETE FROM visitors WHERE time < datetime('now', '-1 month');
""")
connection.commit()
if __name__ == "__main__":
bottle.run(host="0.0.0.0", port=8080)
else:
application.catchall = False