Created
January 22, 2020 17:18
-
-
Save Porter97/f9123ae77928e22d5e61b0582ba7e2bc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask_wtf import FlaskForm | |
from wtforms import StringField, PasswordField, SubmitField | |
from wtforms.validators import DataRequired, Length, Email, Regexp, EqualTo | |
from wtforms import ValidationError | |
from ..models import User | |
class RegistrationForm(FlaskForm): | |
email = StringField(‘Email’, validators=[DataRequired(), Length(1, 64), Email()]) | |
username = StringField('Username', validators=[DataRequired(), Length(1, 64), | |
Regexp('^[A-Za-z][A-Za-z0-9_.]*$', 0, | |
'Usernames must have only letters, numbers, dots or ' | |
'underscores')]) | |
password = PasswordField(label='Password', | |
validators=[DataRequired(), | |
EqualTo('password2', message='Passwords must match.')]) | |
password2 = PasswordField(label='Confirm password', validators=[DataRequired()]) | |
submit = SubmitField('Register') | |
def validate_email(self, field): | |
if User.query.filter_by(email=field.data.lower()).first(): | |
raise ValidationError('Email already registered.') | |
def validate_username(self, field): | |
if User.query.filter_by(username=field.data).first(): | |
raise ValidationError('Username already in use.') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment