forms.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: forms.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-10-28 10:35:20 (CST)
  9. # Last Update:星期五 2016-10-28 10:36:9 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import session
  14. from flask_wtf import Form
  15. from wtforms import (StringField, PasswordField, BooleanField)
  16. from wtforms.validators import Length, DataRequired, Email
  17. from flask_babelex import lazy_gettext as _
  18. class BaseForm(Form):
  19. username = StringField(
  20. _('Username:'), [DataRequired(), Length(
  21. min=4, max=20)])
  22. password = PasswordField(
  23. _('Password:'), [DataRequired(), Length(
  24. min=4, max=20)])
  25. captcha = StringField(
  26. _('Captcha:'), [DataRequired(), Length(
  27. min=4, max=4)])
  28. def validate(self):
  29. rv = Form.validate(self)
  30. if not rv:
  31. return False
  32. captcha = session['captcha']
  33. captcha_data = self.captcha.data
  34. if captcha_data.lower() != captcha.lower():
  35. self.captcha.errors.append(_('The captcha is error'))
  36. return False
  37. return True
  38. class RegisterForm(BaseForm):
  39. email = StringField(_('Email:'), [DataRequired(), Email()])
  40. class LoginForm(BaseForm):
  41. remember = BooleanField(_('Remember me'), default=False)