/
app.py
100 lines (88 loc) · 3.56 KB
/
app.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from flask import Flask, render_template, request, redirect, url_for, session
import datetime
import utils
import sqlite3
import shelve
app = Flask(__name__)
currentUser = ""
@app.route("/index", methods=["GET","POST"])
@app.route("/", methods=["GET","POST"])
def index():
if 'logged_in' not in session:
session['logged_in'] = False
if 'user' not in session:
session['user'] = 'Anonymous'
if request.method=="GET":
return render_template("index.html", log = "" )
if request.method=="POST":
button = request.form['button']
username=request.form['username']
password=request.form['password']
if button=="Login":
if utils.authenticate(username,password) == "success":
currentUser = username
session['user'] = username
session['logged_in'] = True
posts = utils.getPosts()
return redirect("/posts")
elif utils.authenticate(username,password) == "noUser":
return render_template("index.html", log = "noUser")
else:
return render_template("index.html", log = "fail")
else:
return "bye"
@app.route("/register", methods = ["GET", "POST"])
def register():
if request.method=="GET":
return render_template("register.html", taken = False, success = False)
if request.method=="POST":
button = request.form['button']
username=request.form['username']
password=request.form['password']
if button=="Register":
response = utils.add(username,password)
if response == "taken":
return render_template("register.html", taken = True, success = False)
elif response == "success":
return render_template("register.html", taken = False, success = True)
else:
return "Wrong combo"
else:
return "bye"
@app.route("/postnew", methods=["GET","POST"])
def postnew():
if session['logged_in'] == False:
return redirect('/index')
if request.method=="GET":
return render_template("postnew.html", username = session['user'])
if request.method=="POST":
postButton = request.form['postButton']
uname = session['user']
time = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
msg = request.form['post']
utils.addPost(uname, time, msg)
posts = utils.getPosts()
return redirect("/posts") #render_template("posts.html", username = currentUser, posts = posts, comments = [])
@app.route("/posts", methods=["GET","POST"])
def posts():
posts = utils.getPosts()
if session['logged_in'] == False:
return redirect('/index')
if request.method=="GET":
return render_template("posts.html", username = session['user'], posts = posts, comments = [])
if request.method=="POST":
button = request.form['button0']
if button == "Write New Post":
return redirect("/postnew") #("postnew.html", username = currentUser)
return render_template("posts.html", username = session['user'], posts = posts, comments = [])
@app.route("/logout")
def logout():
session['user'] = "Anonymous"
session['logged_in'] = False
return redirect('/index')
#Debug is true to get better error messages
#Run the app. The host COULD be IP address, but normally put it down as 0.0.0.0 so that anyone can use the app.
if __name__=="__main__":
app.debug=True
app.secret_key = "My name is Ted"
app.run(host='0.0.0.0',port=8000)