forked from Azure-Samples/python-docs-hello-world
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroutes.py
More file actions
72 lines (62 loc) · 2.63 KB
/
Copy pathroutes.py
File metadata and controls
72 lines (62 loc) · 2.63 KB
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
from flask import render_template, flash, redirect, url_for, session
from werkzeug.security import generate_password_hash, check_password_hash
from app import app, db
from forms import LoginForm, SignupForm, ProfileForm
from models import User, Post, Profile
from config import Config
import os
@app.route('/')
@app.route('/index')
def index():
user = {'username': 'Vivek'}
return render_template('index.html', title='Home', user=user)
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
user_in_db = User.query.filter(User.username == form.username.data).first()
if not user_in_db:
flash('No user found with username: {}'.format(form.username.data))
return redirect(url_for('login'))
if check_password_hash(user_in_db.password_hash, form.password.data):
flash('Login success!')
session["USERNAME"] = user_in_db.username
return redirect(url_for('profile'))
flash('Incorrect Password')
return redirect(url_for('login'))
return render_template('login.html', title='Sign In', form=form)
@app.route('/signup', methods=['GET', 'POST'])
def signup():
form = SignupForm()
if form.validate_on_submit():
if form.password.data != form.password2.data:
flash('Passwords do not match!')
return redirect(url_for('signup'))
passw_hash = generate_password_hash(form.password.data)
user = User(username=form.username.data, email=form.email.data, password_hash=passw_hash)
db.session.add(user)
db.session.commit()
flash('User registered with username:{}'.format(form.username.data))
session["USERNAME"] = user.username
print(session)
return redirect(url_for('profile'))
return render_template('signup.html', title='Register a new user', form=form)
@app.route('/profile', methods=['GET', 'POST'])
def profile():
form = ProfileForm()
if not session.get("USERNAME") is None:
if form.validate_on_submit():
cv_dir = Config.CV_UPLOAD_DIR
file_obj = form.cv.data
cv_filename = session.get("USERNAME") + '_CV.pdf'
file_obj.save(os.path.join(cv_dir, cv_filename))
flash('CV uploaded and saved')
return redirect(url_for('index'))
return render_template('profile.html', title='Add/Modify your profile', form=form)
else:
flash("User needs to either login or signup first")
return redirect(url_for('login'))
@app.route('/logout')
def logout():
session.pop("USERNAME", None)
return redirect(url_for('login'))