Added profile view, cookie support for accounts
This commit is contained in:
parent
f44e07a414
commit
eab5b4c22f
1 changed files with 71 additions and 30 deletions
63
Tweeder.py
63
Tweeder.py
|
@ -1,30 +1,39 @@
|
||||||
from flask import Flask, render_template, request
|
from flask import Flask, render_template, request, redirect, url_for, session
|
||||||
from backend import accounts
|
from backend import accounts
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
app.secret_key = "eVZ4EmVK70iETb03KqDAXV5sBHb3T73t"
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def hello_world():
|
def index():
|
||||||
return render_template("index.html")
|
if 'username' in session.keys():
|
||||||
|
return redirect(url_for('profile'))
|
||||||
|
else:
|
||||||
|
return redirect(url_for('register'))
|
||||||
|
|
||||||
|
|
||||||
@app.route('/login', methods=['POST'])
|
@app.route('/login', methods=['GET', 'POST'])
|
||||||
def login():
|
def login():
|
||||||
|
if request.method == 'POST':
|
||||||
username = request.form['username']
|
username = request.form['username']
|
||||||
password = request.form['password']
|
password = request.form['password']
|
||||||
|
|
||||||
login_attempt = accounts.login(username, password)
|
login_attempt = accounts.login(username, password)
|
||||||
return render_template('status.html',
|
if login_attempt['status'] == 'success':
|
||||||
title_status=login_attempt['status'].title(),
|
session['username'] = username
|
||||||
|
return redirect(url_for('profile'))
|
||||||
|
else:
|
||||||
|
return render_template('login.html',
|
||||||
status=login_attempt['status'],
|
status=login_attempt['status'],
|
||||||
message=login_attempt['message'])
|
message=login_attempt['message'])
|
||||||
|
elif request.method == 'GET':
|
||||||
|
return render_template('login.html')
|
||||||
|
|
||||||
|
|
||||||
@app.route('/register', methods=['POST'])
|
@app.route('/register', methods=['GET', 'POST'])
|
||||||
def register():
|
def register():
|
||||||
|
if request.method == "POST":
|
||||||
username = request.form['username']
|
username = request.form['username']
|
||||||
email = request.form['email']
|
email = request.form['email']
|
||||||
password = request.form['password']
|
password = request.form['password']
|
||||||
|
@ -32,9 +41,41 @@ def register():
|
||||||
|
|
||||||
if password == confirm_password:
|
if password == confirm_password:
|
||||||
register_attempt = accounts.create_account(email, username, password)
|
register_attempt = accounts.create_account(email, username, password)
|
||||||
return register_attempt['message']
|
return render_template('register.html',
|
||||||
|
status=register_attempt['status'],
|
||||||
|
message=register_attempt['message'])
|
||||||
else:
|
else:
|
||||||
return "Passwords do not match!"
|
return render_template("register.html",
|
||||||
|
status="danger",
|
||||||
|
message="Passwords do not match!")
|
||||||
|
elif request.method == 'GET':
|
||||||
|
return render_template('register.html')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/profile', methods=['GET'])
|
||||||
|
@app.route('/profile/<name>', methods=['GET'])
|
||||||
|
def profile(name=None):
|
||||||
|
|
||||||
|
logged_in = True if ('username' in session.keys()) else False
|
||||||
|
if not logged_in and name is None:
|
||||||
|
return redirect(url_for('index'))
|
||||||
|
if logged_in and name is None:
|
||||||
|
name = session['username']
|
||||||
|
name = name.lower()
|
||||||
|
logged_in = 'username' in session.keys()
|
||||||
|
dname = accounts.get_display_name(name)
|
||||||
|
return render_template('profile.html', user=accounts.account_details(name), logged_in=logged_in)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/logout')
|
||||||
|
def logout():
|
||||||
|
session.pop('username')
|
||||||
|
return redirect(url_for('login'))
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/layout')
|
||||||
|
def layout():
|
||||||
|
return render_template('layout.html', logged_in=True)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Add table
Reference in a new issue