Application - Error Message

dev
nico 5 days ago
parent e9781a3101
commit 05b33baf9f

Binary file not shown.

@ -1,10 +1,15 @@
from flask import Flask from flask import Flask
from flask_sqlalchemy import SQLAlchemy # type: ignore from flask_sqlalchemy import SQLAlchemy # type: ignore
from flask_bcrypt import Bcrypt # type: ignore
app = Flask(__name__) app = Flask(__name__)
app.config['SECRET_KEY'] = 'db3746b2ffa650b3804e4316d227f853' app.config['SECRET_KEY'] = 'db3746b2ffa650b3804e4316d227f853'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blogsite.db' app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blogsite.db'
db = SQLAlchemy(app) db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
from blogapp import routes from blogapp import routes

@ -1,6 +1,7 @@
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo from wtforms.validators import DataRequired, Length, Email, EqualTo, ValidationError
from blogapp.models import User
class RegistrationForm(FlaskForm): class RegistrationForm(FlaskForm):
@ -14,6 +15,15 @@ class RegistrationForm(FlaskForm):
validators=[DataRequired(), EqualTo('password')]) validators=[DataRequired(), EqualTo('password')])
submit =SubmitField('Sign Up') submit =SubmitField('Sign Up')
def validate_username(self, username):
user = User.query.filter_by(username=username.data).first()
if user:
raise ValidationError('That username is taken. Please choose a different one')
def validate_email(self, email):
user = User.query.filter_by(email=email.data).first()
if user:
raise ValidationError('That email is taken. Please choose a different one')
class LoginForm(FlaskForm): class LoginForm(FlaskForm):
email = StringField('Email', email = StringField('Email',

@ -1,5 +1,5 @@
from flask import render_template, url_for, flash, redirect from flask import render_template, url_for, flash, redirect
from blogapp import app from blogapp import app, db, bcrypt
from blogapp.forms import RegistrationForm, LoginForm from blogapp.forms import RegistrationForm, LoginForm
from blogapp.models import User, Post from blogapp.models import User, Post
@ -28,8 +28,15 @@ def home():
def register(): def register():
form = RegistrationForm() form = RegistrationForm()
if form.validate_on_submit(): if form.validate_on_submit():
flash(f'Account created for {form.username.data}!') hashed_password = bcrypt.generate_password_hash(
return redirect(url_for('home')) form.password.data).decode('utf-8')
user = User(username=form.username.data,
email=form.email.data, password=hashed_password)
db.session.add(user)
db.session.commit()
flash(f'Your account has been created !!')
return redirect(url_for('login'))
return render_template('register.html', title='register', form=form, pagetitle=pagetitle) return render_template('register.html', title='register', form=form, pagetitle=pagetitle)
@ -38,8 +45,8 @@ def login():
form = LoginForm() form = LoginForm()
if form.validate_on_submit(): if form.validate_on_submit():
if form.email.data == 'admin' and form.password.data == 'admin': if form.email.data == 'admin' and form.password.data == 'admin':
flash('You have been log in !') flash(f'You have been log in !')
return redirect(url_for('home')) return redirect(url_for('home'))
else: else:
flash('Login Unsuccessful') flash(f'Login Unsuccessful')
return render_template('login.html', title='login', form=form, pagetitle=pagetitle) return render_template('login.html', title='login', form=form, pagetitle=pagetitle)

@ -0,0 +1,3 @@
.invalid {
color:red;
}

@ -13,7 +13,7 @@
<body> <body>
<header>
{% block navbar %} {% block navbar %}
<ul> <ul>
<li><a href="{{ url_for('home') }}"> home </a></li> <li><a href="{{ url_for('home') }}"> home </a></li>
@ -21,16 +21,9 @@
<li><a href="{{ url_for('register') }}">register</a></li> <li><a href="{{ url_for('register') }}">register</a></li>
</ul> </ul>
{% endblock %} {% endblock %}
</header>
{% with messages = get_flashed_messages(with_categories=true) %} <main>
{% if messages %}
{% for caterogy, message in messages %}
<div>
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
{% for head in pagetitle %} {% for head in pagetitle %}
{% if title == head.title %} {% if title == head.title %}
@ -38,10 +31,21 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
<div> <div>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for caterogy, message in messages %}
<div class="alert alert-{{ category }}">
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
{% block content %} {% block content %}
{% endblock %} {% endblock %}
</div> </div>
</main>
</body> </body>
</html> </html>

@ -11,8 +11,8 @@
{{ form.email.label() }} {{ form.email.label() }}
{% if form.email.errors %} {% if form.email.errors %}
{{ form.email() }} {{ form.email() }}
<div> <div class="invalid">
{% for errors in form.email.errors %} {% for error in form.email.errors %}
<span>{{ error }}</span> <span>{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
@ -27,8 +27,8 @@
{{ form.password.label() }} {{ form.password.label() }}
{% if form.password.errors %} {% if form.password.errors %}
{{ form.password()}} {{ form.password()}}
<div> <div class="invalid">
{% for errors in form.password.errors %} {% for error in form.password.errors %}
<span>{{ error }}</span> <span>{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>

@ -1,7 +1,5 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% block content %} {% block content %}
<div> <div>
@ -11,62 +9,62 @@
<legend>Join Today</legend> <legend>Join Today</legend>
<div> <div>
{{ form.username.label() }} {{ form.username.label() }}
{% if form.username.errors %} {% if form.username.errors %}
{{ form.username()}} {{ form.username()}}
<div> <div class="invalid">
{% for errors in form.username.errors %} {% for error in form.username.errors %}
<span>{{ error }}</span> <span>{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}
{{ form.username() }} {{ form.username() }}
{% endif %} {% endif %}
</div> </div>
<br> <br>
<div> <div>
{{ form.email.label() }} {{ form.email.label() }}
{% if form.email.errors %} {% if form.email.errors %}
{{ form.email() }} {{ form.email() }}
<div> <div class="invalid">
{% for errors in form.email.errors %} {% for error in form.email.errors %}
<span>{{ error }}</span> <span>{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}
{{ form.email() }} {{ form.email() }}
{% endif %} {% endif %}
</div> </div>
<br> <br>
<div> <div>
{{ form.password.label() }} {{ form.password.label() }}
{% if form.password.errors %} {% if form.password.errors %}
{{ form.password()}} {{ form.password() }}
<div> <div class="invalid">
{% for errors in form.password.errors %} {% for error in form.password.errors %}
<span>{{ error }}</span> <span>{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}
{{ form.password() }} {{ form.password(class="form-control") }}
{% endif %} {% endif %}
</div> </div>
<br> <br>
<div> <div>
{{ form.confirm_password.label() }} {{ form.confirm_password.label() }}
{% if form.confirm_password.errors %} {% if form.confirm_password.errors %}
{{ form.confirm_password()}} {{ form.confirm_password()}}
<div> <div class="invalid">
{% for errors in form.confirm_password.errors %} {% for error in form.confirm_password.errors %}
<span>{{ error }}</span> <span>{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}
{{ form.confirm_password() }} {{ form.confirm_password() }}
{% endif %} {% endif %}
</div> </div>
</fieldset> </fieldset>
<div> <div>

Binary file not shown.
Loading…
Cancel
Save