flask利用flask-wtf验证上传的文件的方法
更新时间:2020年4月27日 21:20 点击:2028
利用flask-wtf验证上传的文件
- 定义验证表单类的时候,对文件类型的字段,需要采用FileField这个类型,即wtforms.FileField。
- 验证器需要从flask_wtf.file中导入。flask_wtf.file.FileRequired和flask_wtf.file.FileAllowed
- flask_wtf.file.FileRequired是用来验证文件上传不能为空。
- flask_wtf.file.FileAllowed用来验证上传的文件的后缀名, 如常见图片后缀.jpg和.png以及.gif等。
- 在视图函数中,需要使用from werkzeug.datastructures import CombinedMultiDict来把request.form与request.files来进行合并。
- 最后使用 表单验证对象.validate()进行验证。
upload.html文件:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传文件</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <table> <tr> <td>头像:</td> <td><input type="file" name="pichead"></td> </tr> <tr> <td>描述:</td> <td><input type="text" name="desc"></td> </tr> <tr> <td></td> <td><input type="submit" value="提交"></td> </tr> </table> </form> </body> </html>
formscheck.py文件:
from wtforms import Form,FileField,StringField from wtforms.validators import InputRequired from flask_wtf.file import FileRequired,FileAllowed class UploadForm(Form): pichead = FileField(validators=[FileRequired(),FileAllowed(['jpg','png','gif'])]) desc = StringField(validators=[InputRequired()])
python启动文件:
from flask import Flask,request,render_template import os from werkzeug.utils import secure_filename from formscheck import UploadForm from werkzeug.datastructures import CombinedMultiDict app = Flask(__name__) UPLOAD_PATH = os.path.join(os.path.dirname(__file__),'images') #利用flask-wtf验证上传的文件 @app.route('/upload/',methods=['GET','POST']) def upload(): if request.method == 'GET': return render_template('upload.html') else: form = UploadForm(CombinedMultiDict([request.form,request.files])) if form.validate(): # desc = request.form.get("desc") # pichead = request.files.get("pichead") desc = form.desc.data pichead = form.pichead.data filename = secure_filename(pichead.filename) pichead.save(os.path.join(UPLOAD_PATH,filename)) print(desc) return '文件上传成功' else: print(form.errors) return "文件上传失败" if __name__ == '__main__': app.run(debug=True)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
相关文章
- 今天小编就为大家分享一篇python 实现Flask中返回图片流给前端展示,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
Python如何使用logging为Flask增加logid
这篇文章主要介绍了Python如何使用logging为Flask增加logid,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-03-30- 今天带大家复习python框架的相关知识,文中对flask作了非常详细的介绍,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下...2021-05-25
- 在本篇内容里小编给大家整理的是一篇关于flask开启多线程的具体方法,对此有需求的可以学习参考下。...2020-08-03
- 在某些场景下,我们需要将机器学习或者深度学习模型部署为服务给其它地方调用,本文接下来就讲解使用python的flask部署服务的基本过程。...2021-05-14
- 在flask中,想要给前端页面返回数据,必须是Response的对象,本文介绍了Flask response响应的使用,感兴趣的可以了解一下...2021-07-15
python 解决flask 图片在线浏览或者直接下载的问题
今天小编就为大家分享一篇python 解决flask 图片在线浏览或者直接下载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27- 在本篇文章里小编给大家整理了关于Flask中sqlalchemy模块的实例用法,需要的朋友们可以学习下。...2020-08-02
Python的Flask框架中SERVER_NAME域名项的配置教程
SERVER_NAME项在Flask的路由配置中至关重要,特别是在配置绝对url和子域名的操作中,这里我们就来看一下Python的Flask框架中SERVER_NAME项的配置教程:...2020-06-30- 这篇文章主要给大家介绍了关于如何利用python实现后端写网页(flask框架)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-28
- 这篇文章主要介绍了flask利用flask-wtf验证上传的文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-27
Docker构建python Flask+ nginx+uwsgi容器
这篇文章主要介绍了Docker构建python Flask+ nginx+uwsgi容器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-06- 这篇文章主要介绍了Python Flask框架实现简单加法工具过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-04
- Flask是一个微型的Python开发的Web框架,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask使用BSD授权。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。本文主要介绍了它的异常处理机制...2021-06-16
- 今天小编就为大家分享一篇Flask 上传自定义头像的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
- 这篇文章主要介绍了python+flask编写一个简单的登录接口,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下...2020-11-13
- 在本篇文章中小编给大家整理的是一篇关于Flask缓存静态文件的具体方法,有需要的朋友们可以参考下。...2020-08-02
- 这篇文章主要介绍了Python Flask异步发送邮件实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-02
- 在本篇内容里小编给大家整理的是关于如何解决flask修改静态资源后缓存文件不能及时更改问题,需要的朋友们可以学习下。...2020-08-02
- 最近新做了个项目,使用的是MAC+PyCharm+Flask+Vue.js搭建系统,本文就来分享一下搭建步骤,感兴趣的可以了解一下...2021-05-20