Files
BH-TicketSystem/UI/datacheck.py
2024-06-22 05:22:59 +00:00

41 lines
2.1 KiB
Python

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from wtforms.validators import InputRequired, Length, Regexp
class LoginForm(FlaskForm):
username = StringField('Username', validators=[
InputRequired(message='Username is required.'),
Regexp(r'^[a-zA-Z][a-zA-Z0-9_]{0,19}$', message='Invalid username format.')
])
password = PasswordField('Password', validators=[
InputRequired(message='Password is required.'),
Length(min=1, max=30, message='Password must be between 1 and 30 characters long.')
])
class AddUserForm(FlaskForm):
username = StringField('Username', validators=[
InputRequired(message='Username is required.'),
Regexp(r'^[a-zA-Z][a-zA-Z0-9_]{0,19}$', message='Username must start with a letter and can only contain letters, numbers, and underscores (max 20 characters).')
])
password = PasswordField('Password', validators=[
InputRequired(message='Password is required.'),
Length(min=1, max=30, message='Password must be between 1 and 30 characters long.')
])
name = StringField('Name', validators=[
InputRequired(message='Name is required.'),
Regexp(r'^[\u4e00-\u9fa5]{2,5}$', message='Name must be 2-5 Chinese characters.')
])
mailAddr = StringField('Email', validators=[
InputRequired(message='Email is required.'),
Length(max=30, message='Email must be less than 30 characters long.'),
Regexp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', message='Invalid email format.')
])
privilege = StringField('Privilege', validators=[
InputRequired(message='Privilege is required.'),
Regexp(r'^[0-9]$|^10$', message='Privilege must be an integer between 0 and 10.')
])
class QueryProfileForm(FlaskForm):
username = StringField('Username', validators=[
InputRequired(message='Username is required.'),
Regexp(r'^[a-zA-Z][a-zA-Z0-9_]{0,19}$', message='Username must start with a letter and can only contain letters, numbers, and underscores (max 20 characters).')
])