首页
仓库
文档
nginx手册
Docker手册
workerman
Flask
PHP
python
RabbitMQ
其他
Linux
占位1
占位2
目录
pip install flask-wtf 验证 ```python from forms import TestForm 略 @index_index.route('/add',methods=['GET','POST']) def add(): if request.method=='GET': return render_template('index/index/add.html') else: form = TestForm(request.form) if not form.validate(): #如果验证通过,则 函数返回 True ,否则返回 False # 表单验证不通过,获取错误信息 errors = {} for field, errors in form.errors.items(): print(field, errors) return "<script>alert('发表失败!');window.history.back()</script>" data=request.form.to_dict() new = DNew(**data) # 创建对象及内容 db.session.add(new) # 添加 db.session.commit() # 提交 return "<script>alert('发布成功!');location.href='/'</script>" ``` forms.py ```python from wtforms import Form, BooleanField, StringField, PasswordField, validators from wtforms.validators import DataRequired class TestForm(Form): title = StringField('title', [validators.Length(min=1, max=10,message='title字符串长度 be between 4 and 25 characters'),]) content = StringField('content', [validators.Length(min=4, max=20,message='content字符串长度 must be between 4 and 25 characters')]) ``` 其他 #DataRequired:确保字段的值非空。 #field = StringField('Field Name', validators=[DataRequired()]) # Length:限制字段值的长度。 #field = StringField('Field Name', validators=[Length(min=3, max=10)]) #Email:验证电子邮件地址的格式。 # field = StringField('Field Name', validators=[Email()]) # EqualTo:验证两个字段的值是否相等,通常用于密码确认字段。 # # 示例用法 # password = PasswordField('Password', validators=[DataRequired()]) # confirm_password = PasswordField('Confirm Password', validators=[EqualTo('password')]) # URL:验证URL地址的格式。 # field = StringField('Field Name', validators=[URL()]) # NumberRange:验证数值字段的取值范围。 # field = IntegerField('Field Name', validators=[NumberRange(min=0, max=100)]) # Regexp:使用正则表达式验证字段值的格式。 # field = StringField('Field Name', validators=[Regexp(r'^[A-Za-z]+$')]) # AnyOf:验证字段值是否属于指定的可选值列表。 # field = StringField('Field Name', validators=[AnyOf(['option1', 'option2', 'option3'])]) 1、StringField:用于文本输入字段,对应HTML的<input type="text">。 2、PasswordField:用于密码输入字段,对应HTML的<input type="password">。 3、TextAreaField:用于多行文本输入字段,对应HTML的<textarea></textarea>。 4、IntegerField:用于整数输入字段,对应HTML的<input type="number">。 5、DecimalField:用于十进制数输入字段,对应HTML的<input type="number">。 6、BooleanField:用于复选框字段,对应HTML的<input type="checkbox">。 7、RadioField:用于单选按钮字段,对应HTML的<input type="radio">。 8、SelectField:用于下拉列表字段,对应HTML的<select><option></option></select>。 9、然后FileField:用于文件上传字段,对应HTML的<input type="file">。 10、DateField:用于日期输入字段,可以选择日历日期。 11、DateTimeField:用于日期和时间输入字段。 12、HiddenField:用于隐藏字段,对应HTML的<input type="hidden">。