-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforms.py
More file actions
69 lines (53 loc) · 3.29 KB
/
forms.py
File metadata and controls
69 lines (53 loc) · 3.29 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from flask_wtf.form import FlaskForm
from flask_wtf.file import FileAllowed, FileRequired, FileField
from wtforms import PasswordField, SubmitField, TextAreaField, StringField, BooleanField
from wtforms.validators import DataRequired, Email, EqualTo, Length, Regexp, ValidationError
from models import Article, User
import datetime
from captcha import getCaptcha
class LoginForm(FlaskForm):
# openid=StringField('openid',validators=[DataRequired()])#Datarequired()确保字段中有数据
remember_me = BooleanField('Remember me')
nickname = StringField('Nickname', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
submit = SubmitField('Sign in')
class RegistrationForm(FlaskForm):
nickname = StringField('Nickname', validators=[DataRequired()])
email = StringField('Email', validators=[DataRequired(), Email()])
password = PasswordField('Password1', validators=[DataRequired()])
password2 = PasswordField('Repeat Password', validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Submit')
def validate_nickname(self, nickname):
user = User.query.filter_by(nickname=nickname.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.')
class UploadForm(FlaskForm):
title = StringField("Title", validators=[DataRequired(), Length(min=1, max=50)])
author = StringField("Author", validators=[DataRequired()])
subject = StringField("Subjects", validators=[DataRequired()], render_kw={'placeholder': 'Split subjects by space'})
highlight = TextAreaField("Highlight")
email = StringField("Email", validators=[DataRequired(), Email(message="email error")],
render_kw={'placeholder': 'Email'})
file = FileField("File(img)", validators=[FileRequired(), FileAllowed(['pdf','png','jpg'])])
submit = SubmitField("Submit", render_kw={'class': 'btn btn-primary'})
def to_Article(self):
return Article(title=self.title.data, author=self.author.data, highlight=self.highlight.data,
subject=self.subject.data, date=datetime.datetime.now(), email=self.email.data)
class CommentForm(FlaskForm):
email = StringField("Email(You should activate your email beform you comment)",
validators=[DataRequired(), Email(message="email error")],
render_kw={'placeholder': 'Email'})
comment = TextAreaField("Comment",
validators=[DataRequired(), Length(min=5, message='At least 5 letters!')])
submit = SubmitField("Submit", render_kw={'class': 'btn btn-primary'})
class SearchArticleForm(FlaskForm):
content = StringField("Search:", render_kw={"class": "form-control"}, validators=[DataRequired()])
submit = SubmitField("Submit", render_kw={'class': 'btn btn-primary'})
class EmailValidateForm(FlaskForm):
email = StringField("Email", validators=[DataRequired(), Email(message="email error")],
render_kw={'placeholder': 'Email'})
submit = SubmitField("Submit", render_kw={'class': 'btn btn-primary'})