gpt4 book ai didi

flask利用flask-wtf验证上传的文件的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章flask利用flask-wtf验证上传的文件的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

利用flask-wtf验证上传的文件 。

  1. 定义验证表单类的时候,对文件类型的字段,需要采用FileField这个类型,即wtforms.FileField。
  2. 验证器需要从flask_wtf.file中导入。flask_wtf.file.FileRequired和flask_wtf.file.FileAllowed
  3. flask_wtf.file.FileRequired是用来验证文件上传不能为空。
  4. flask_wtf.file.FileAllowed用来验证上传的文件的后缀名, 如常见图片后缀.jpg和.png以及.gif等。
  5. 在视图函数中,需要使用from werkzeug.datastructures import CombinedMultiDict来把request.form与request.files来进行合并。
  6. 最后使用 表单验证对象.validate()进行验证。

upload.html文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!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文件:

?
1
2
3
4
5
6
7
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启动文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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 )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/weixin_44733660/article/details/103990608 。

最后此篇关于flask利用flask-wtf验证上传的文件的方法的文章就讲到这里了,如果你想了解更多关于flask利用flask-wtf验证上传的文件的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com