· 6 years ago · Oct 20, 2019, 11:26 PM
1from flask import Flask,request,render_template,redirect
2import psycopg2
3import os
4import time
5
6DB_USER = os.environ["DB_USER"]
7DB_PASSWORD = os.environ["DB_PASS"]
8DB = os.environ["DB"]
9DB_HOST = os.environ["DB_HOST"]
10
11app = Flask(__name__)
12
13def init_tables():
14
15 CREATE_TABLE = "CREATE TABLE IF NOT EXISTS REVIEWS (name TEXT NOT NULL, review TEXT NOT NULL)"
16 conn = psycopg2.connect(host=DB_HOST,database=DB, user=DB_USER, password=DB_PASSWORD)
17 cursor = conn.cursor()
18 cursor.execute(CREATE_TABLE)
19 conn.commit()
20 cursor.close()
21 conn.close()
22
23def add_review(name,review):
24
25 ADD_REVIEW = "INSERT INTO REVIEWS (name,review) VALUES (%s,%s)"
26 conn = psycopg2.connect(host=DB_HOST,database=DB, user=DB_USER, password=DB_PASSWORD)
27 cursor = conn.cursor()
28 cursor.execute(ADD_REVIEW,(name,review))
29 conn.commit()
30 cursor.close()
31 conn.close()
32
33def load_reviews():
34
35 reviews = []
36
37 LOAD_REVIEW = "SELECT * from REVIEWS"
38 conn = psycopg2.connect(host=DB_HOST,database=DB, user=DB_USER, password=DB_PASSWORD)
39 cursor = conn.cursor()
40 cursor.execute(LOAD_REVIEW)
41 results = cursor.fetchall()
42
43 for row in results:
44 reviews.append((row[0],row[1]))
45 cursor.close()
46 conn.close()
47
48 return reviews
49
50@app.route("/reviews/add",methods=["POST"])
51def addreview():
52
53
54 name = request.form["name"]
55 review = request.form["review"]
56
57 add_review(name,review)
58
59 return {"success":True}
60
61@app.route("/reviews/list",methods=["POST"])
62def listreviews():
63
64 reviews = load_reviews()
65
66 return {"success":True,"list":reviews}
67
68#Deferred execution by 20 seconds to allow database to initialize
69time.sleep(20)
70init_tables()
71app.run(host="0.0.0.0",port=5000)