使用wtforms.fieldsFileField()实现文件上传的Python示例代码
发布时间:2024-01-13 11:18:36
wtforms.fields.FileField()是WTForms库中的一个表单字段类,用于实现文件上传的功能。该字段类可以用于接收和验证用户上传的文件。
以下是一个使用wtforms.fields.FileField()实现文件上传的Python示例代码:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import SubmitField
from wtforms.fields.html5 import FileField
from werkzeug.utils import secure_filename
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
class UploadForm(FlaskForm):
file = FileField('Choose a file')
submit = SubmitField('Upload')
@app.route('/', methods=['GET', 'POST'])
def upload_file():
form = UploadForm()
if form.validate_on_submit():
file = form.file.data
filename = secure_filename(file.filename)
file.save(f'uploads/{filename}')
return 'File uploaded successfully!'
return render_template('index.html', form=form)
if __name__ == '__main__':
app.run()
在上面的示例代码中,我们创建了一个Flask应用,并使用Flask-WTF库来处理表单。我们定义了一个名为UploadForm的表单类,其中包含一个FileField字段和一个SubmitField字段。
在表单验证通过后,我们获取用户上传的文件数据,使用secure_filename()函数来确保文件名的安全性,然后将文件保存到指定的目录中。
在上传文件之前,我们需要在Flask应用的项目目录下创建一个名为"uploads"的文件夹,用于存储上传的文件。我们还通过设置SECRET_KEY来保护表单。
最后,我们将表单渲染到名为index.html的模板中,用户可以选择文件并点击“Upload”按钮来上传文件。
使用示例:
1. 启动应用,并访问http://localhost:5000/。
2. 选择一个文件,并点击“Upload”按钮。
3. 文件将被上传到项目目录下的"uploads"文件夹中,并返回“File uploaded successfully!”的提示信息。
以上示例代码演示了如何使用wtforms.fields.FileField()创建一个文件上传的表单,并保存用户上传的文件。你可以根据实际需求对代码进行修改和扩展。
