parent
7556c8168c
commit
ea6ad54f79
@ -1,10 +1,30 @@ |
||||
from flask_wtf import FlaskForm |
||||
from wtforms import StringField, PasswordField, BooleanField, SubmitField |
||||
from wtforms.validators import ValidationError, DataRequired, Email, EqualTo |
||||
from app.models import User |
||||
|
||||
|
||||
class LoginForm(FlaskForm): |
||||
username = StringField('Username', validators=[DataRequired()]) |
||||
password = PasswordField('Password', validators=[DataRequired()]) |
||||
remember_me = BooleanField('Remember Me') |
||||
submit = SubmitField('Sign In') |
||||
submit = SubmitField('Sign In') |
||||
|
||||
|
||||
class RegistrationForm(FlaskForm): |
||||
username = StringField('Username', validators=[DataRequired()]) |
||||
email = StringField('Email', validators=[DataRequired(), Email()]) |
||||
password = PasswordField('Password', validators=[DataRequired()]) |
||||
password2 = PasswordField( |
||||
'Repeat Password', validators=[DataRequired(), EqualTo('password')]) |
||||
submit = SubmitField('Register') |
||||
|
||||
def validate_username(self, username): |
||||
user = User.query.filter_by(username=username.data).first() |
||||
if user is not None: |
||||
raise ValidationError('Please use a different username.') |
||||
|
||||
def validate_email(self, email): |
||||
user = User.query.filter_by(email=email.data).first() |
||||
if user is not None: |
||||
raise ValidationError('Please use a different email address.') |
@ -0,0 +1,38 @@ |
||||
{% extends "base.html" %} |
||||
|
||||
{% block content %} |
||||
<h1>Hi, {{ current_user.username }}!</h1> |
||||
<h1>Register</h1> |
||||
<form action="" method="post"> |
||||
{{ form.hidden_tag() }} |
||||
<p> |
||||
{{ form.username.label }}<br> |
||||
{{ form.username(size=32) }}<br> |
||||
{% for error in form.username.errors %} |
||||
<span style="color: red;">[{{ error }}]</span> |
||||
{% endfor %} |
||||
</p> |
||||
<p> |
||||
{{ form.email.label }}<br> |
||||
{{ form.email(size=64) }}<br> |
||||
{% for error in form.email.errors %} |
||||
<span style="color: red;">[{{ error }}]</span> |
||||
{% endfor %} |
||||
</p> |
||||
<p> |
||||
{{ form.password.label }}<br> |
||||
{{ form.password(size=32) }}<br> |
||||
{% for error in form.password.errors %} |
||||
<span style="color: red;">[{{ error }}]</span> |
||||
{% endfor %} |
||||
</p> |
||||
<p> |
||||
{{ form.password2.label }}<br> |
||||
{{ form.password2(size=32) }}<br> |
||||
{% for error in form.password2.errors %} |
||||
<span style="color: red;">[{{ error }}]</span> |
||||
{% endfor %} |
||||
</p> |
||||
<p>{{ form.submit() }}</p> |
||||
</form> |
||||
{% endblock %} |
Loading…
Reference in new issue