峰哥博客
主页
关于
留言
### 安装flask-wtf插件 如果你的Python项目中准备了requirements.txt,那么在里面添加如下内容: ``` Flask-WTF==2.1.0 ``` 其中的版本请自行选择,这里只是给出样本。或者因为临时测试的目的也可以手动安装,运行如下命令: ``` pip install flask-wtf ``` ### 为文件上传定义表单类 ``` from flask_wtf import FlaskForm from flask_wtf.file import FileField, FileRequired from wtforms import SubmitField class FileUploadForm(FlaskForm): upload_file = FileField(label="选择文件:", validators=[FileRequired()]) submit = SubmitField(label="上传") ``` ### 定义显示表单的html模版页面 如下的例子里面使用了bootstrap的一些页面元素。注意的是千万记得form中添加`enctype="multipart/form-data"`. ``` <div class="container-xl"> <form method="POST" class="form-signin" enctype="multipart/form-data"> {{ form.hidden_tag() }} <h1 class="h3 mb-3 font-weight-normal"> 上传文件 </h1> <br> {{ form.upload_file.label() }} {{ form.upload_file(class="form-control") }} {{ form.submit(class="btn btn-lg btn-block btn-primary") }} </form> </div> ``` ### 在路由定义的文件中添加文件上传路由的内容定义 ``` @app.route('/upload_file.html', methods=['GET', 'POST']) def upload_file_page(): form = FileUploadForm() if form.validate_on_submit(): upload_file = form.upload_file.data file_path = 这里给出服务器端存放上传文件的路径(pathlib.Path) file_name = secure_filename(upload_file.filename) file_fullpath = file_path.joinpath(file_name) upload_file.save(file_fullpath) flash(f'文件保存为: {file_fullpath}', category='success') return render_template('upload_file.html', form=form) ``` 好了,到这里,上传文件的所有要素都准备好了,开始测试吧,祝你好运! ### 针对这一内容的视频课程链接如下 Youtube: [https://www.youtube.com/watch?v=hsL7PNm4Vfk](https://www.youtube.com/watch?v=hsL7PNm4Vfk) Bilibili: [https://www.bilibili.com/video/BV1xg4y1176R/](https://www.bilibili.com/video/BV1xg4y1176R/)
通过flask-wtf实现文件上传
最后更新: 2003年10月10日 12:30:00
Privacy Policy