详解Python中FileRequired()函数的参数和返回值
发布时间:2024-01-10 23:47:52
FileRequired()函数是Flask-WTF中的一个验证器,用于验证上传文件字段不为空。
该函数的参数只有一个选项,即message,用于定义当验证不通过时所返回的错误信息。默认错误信息为"此字段为必填项"。
该函数的返回值是一个自定义的验证函数,可用于表单字段验证。
下面是一个使用FileRequired()函数的示例:
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import FileField, SubmitField
from wtforms.validators import FileRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class MyForm(FlaskForm):
myfile = FileField('上传文件', validators=[FileRequired()])
submit = SubmitField('提交')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
file = request.files['myfile']
file.save(file.filename)
return '文件上传成功'
return render_template('index.html', form=form)
if __name__ == '__main__':
app.run()
在上面的示例中,我们创建了一个简单的表单类MyForm,其中包含一个文件上传字段myfile和一个提交按钮submit。我们给myfile字段添加了FileRequired()验证器,以确保在提交表单时,该字段不为空。
在index()视图函数中,首先实例化了MyForm类来生成一个表单实例form。当用户点击提交按钮并通过表单验证时,会执行if条件语句中的代码。这里我们通过request对象获取到上传的文件对象,并调用save()方法将文件保存在当前工作目录。最后返回一个字符串表示文件上传成功。
如果用户在不选择文件的情况下点击提交按钮,表单验证不通过,会显示一个错误提示信息,告诉用户myfile字段为必填项。
<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<h1>文件上传</h1>
<form method="post" enctype="multipart/form-data">
{{ form.csrf_token }}
{{ form.myfile.label }} {{ form.myfile }}
{{ form.submit }}
</form>
{% if form.myfile.errors %}
<p>{{ form.myfile.errors[0] }}</p>
{% endif %}
</body>
</html>
在模板中,我们通过form.myfile.label和form.myfile来显示文件上传字段和选择文件的按钮。当验证不通过时,通过form.myfile.errors来显示错误信息。
总结一下,FileRequired()函数用于验证上传文件字段不为空,其参数可以自定义错误信息。返回值是一个验证函数,可用于表单字段验证。使用该函数可以有效地确保上传文件字段的完整性。
