diff options
Diffstat (limited to 'app/main.py')
-rw-r--r-- | app/main.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/app/main.py b/app/main.py index 9dc9b5b..b01c212 100644 --- a/app/main.py +++ b/app/main.py @@ -1,18 +1,27 @@ from flask import * from tinydb import TinyDB +import psycopg2 +import os app = Flask(__name__) +def conn(): + return psycopg2.connect(os.environ.get("DATABASE_URL") or "dbname=questbook user=postgres") + +def table_to_dict(table): + return { "email": table[0], "name": table[1], "message": table[2] } @app.route("/") def home(): - posts = get_db().all() + cur = conn().cursor() + cur.execute("SELECT email, name, message FROM messages;") + posts = map(table_to_dict, cur.fetchall()) return render_template("home.html", posts = posts) @app.route("/message", methods=["POST"]) def create_message(): form = request.form - get_db().insert({ "name": form["name"], "email": form["email"], "message": form["message"]}) + local_conn = conn() + cur = local_conn.cursor() + cur.execute("insert into messages (email, name, message)\n values (%s, %s, %s)", (form["email"], form["name"], form["message"])) + local_conn.commit() return redirect("/") - -def get_db(): - return TinyDB("db.json").table("messages") |