| from flask_wtf import FlaskForm | |
| from wtforms import StringField, PasswordField, SubmitField | |
| from wtforms.validators import DataRequired, Email, EqualTo, Length, ValidationError | |
| from models import User | |
| from wtforms import FileField | |
| from wtforms.validators import Email, Optional | |
| from flask_wtf.file import FileAllowed | |
| class EditProfileForm(FlaskForm): | |
| username = StringField('Имя пользователя', validators=[Optional()]) | |
| email = StringField('Email', validators=[Optional(), Email()]) | |
| avatar = FileField('Аватарка', validators=[FileAllowed(['jpg', 'png', 'jpeg'], 'Только изображения')]) | |
| current_password = PasswordField('Текущий пароль', validators=[Optional()]) | |
| new_password = PasswordField('Новый пароль', validators=[Optional()]) | |
| confirm_password = PasswordField('Подтвердите новый пароль', validators=[ | |
| Optional(), | |
| EqualTo('new_password', message='Пароли должны совпадать') | |
| ]) | |
| submit = SubmitField('Сохранить') | |
| def validate_email(self, email): | |
| user = User.query.filter_by(email=email.data).first() | |
| if user: | |
| raise ValidationError('Этот email уже используется') | |
| class LoginForm(FlaskForm): | |
| email = StringField('Email', validators=[DataRequired(), Email()]) | |
| password = PasswordField('Пароль', validators=[DataRequired()]) | |
| submit = SubmitField('Войти') | |
| class RegistrationForm(FlaskForm): | |
| username = StringField( | |
| 'Имя пользователя', | |
| validators=[ | |
| DataRequired(message="Пожалуйста, введите имя пользователя."), | |
| Length(min=4, max=25, message="Имя пользователя должно быть от 4 до 25 символов.") | |
| ] | |
| ) | |
| email = StringField( | |
| 'Email', | |
| validators=[ | |
| DataRequired(message="Пожалуйста, введите email."), | |
| Email(message="Пожалуйста, введите корректный email.") | |
| ] | |
| ) | |
| password = PasswordField( | |
| 'Пароль', | |
| validators=[ | |
| DataRequired(message="Пожалуйста, введите пароль."), | |
| Length(min=6, message="Пароль должен содержать не менее 6 символов.") | |
| ] | |
| ) | |
| confirm_password = PasswordField( | |
| 'Подтвердите пароль', | |
| validators=[ | |
| DataRequired(message="Пожалуйста, подтвердите пароль."), | |
| EqualTo('password', message="Пароли не совпадают.") | |
| ] | |
| ) | |
| submit = SubmitField('Зарегистрироваться') | |