欢迎访问宙启技术站
智能推送

详解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()函数用于验证上传文件字段不为空,其参数可以自定义错误信息。返回值是一个验证函数,可用于表单字段验证。使用该函数可以有效地确保上传文件字段的完整性。