-
Notifications
You must be signed in to change notification settings - Fork 0
/
forms.py
52 lines (47 loc) · 1.48 KB
/
forms.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from flask_wtf import Form
from wtforms import StringField, PasswordField, TextAreaField
from wtforms.validators import DataRequired, Regexp, ValidationError, Email, Length, EqualTo
from models import User
def name_exists(form, field):
if User.select().where(User.username == field.data).exists():
raise ValidationError('User with that name already exists.')
def email_exists(form, field):
if User.select().where(User.email == field.data).exists():
raise ValidationError('User with that email already exists.')
class RegisterForm(Form):
username = StringField(
'Username',
validators=[
DataRequired(),
Regexp(
r'^[a-zA-Z0-9_]+$',
message=("Username should be one word, letters, numbers, and underscores only")
),
name_exists,
]
)
email = StringField(
'Email',
validators=[
DataRequired(),
Email(),
email_exists
]
)
password = PasswordField(
'Password',
validators=[
DataRequired(),
Length(min=6),
EqualTo('password2', message='Passwords must match')
]
)
password2 = PasswordField(
'Confirm Password',
validators=[
DataRequired()
]
)
class LoginForm(Form):
email = StringField('Email', validators=[DataRequired(), Email()])
password = PasswordField('Password', validators=[DataRequired()])