diff --git a/app.py b/app.py index e96f1c8..6ad61d8 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ from functools import wraps from flask import Flask, render_template, redirect, request, url_for, session, flash from flask_sqlalchemy import SQLAlchemy from werkzeug.security import generate_password_hash, check_password_hash +from sqlalchemy.exc import IntegrityError app = Flask(__name__) @@ -25,29 +26,41 @@ def login_required(view_func): @wraps(view_func) def wrapped(*args, **kwargs): if 'user_id' not in session: - flash('Please sign in to view that page.') + flash('sign in to view that page.') return redirect(url_for('signin')) return view_func(*args, **kwargs) return wrapped +from sqlalchemy.exc import IntegrityError + @app.route('/submit-form', methods=['POST']) def handle_submission(): - form_username = request.form.get('username') - form_email = request.form.get('email') - form_password = request.form.get('password') - + form_username = (request.form.get('username') or '').strip() + form_email = (request.form.get('email') or '').strip().lower() + form_password = request.form.get('password') or '' + + if not form_username or not form_email or not form_password: + return render_template('signup.html', error="All fields are required"), 400 + + if len(form_password) < 8: + return render_template('signup.html', error="Password must be at least 8 characters"), 400 + if User.query.filter_by(username=form_username).first(): - return "
{{ success_message }}
{% endif %} + {% if user_taken %} ++ {{ user_taken }} +
+ {% endif %} + + {% if email_taken %} ++ {{ email_taken }} +
+ {% endif %} + + {% if error %} ++ {{ error }} +
+ {% endif %}