You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.6 KiB

from flask import Flask, render_template, request, redirect, url_for
from models import User
from flask_login import login_user, logout_user, current_user, login_required
def register_routes(app, db, brcypt):
@app.route('/', methods=['GET','POST'])
def index():
return render_template('index.html')
@app.route('/signup', methods = ['GET','POST'])
def signup():
if request.method == 'GET':
return render_template('signup.html')
elif request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
hashed_pass = brcypt.generate_password_hash(password)
user = User(username=username, password=hashed_pass)
db.session.add(user)
db.session.commit()
return redirect(url_for('index'))
@app.route('/login', methods = ['GET','POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
user = User.query.filter(User.username == username).first()
if brcypt.check_password_hash(user.password, password):
login_user(user)
return redirect(url_for('index'))
else:
return f"failed"
@app.route('/logout')
def logout():
logout_user()
return redirect(url_for('index'))
@app.route('/secret')
@login_required
def secret():
return "my SercreT"