最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

flask利用flask-wtf驗(yàn)證上傳的文件的方法

 更新時(shí)間:2020年01月17日 11:04:44   作者:Python''sGod  
這篇文章主要介紹了flask利用flask-wtf驗(yàn)證上傳的文件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

利用flask-wtf驗(yàn)證上傳的文件

  1. 定義驗(yàn)證表單類的時(shí)候,對(duì)文件類型的字段,需要采用FileField這個(gè)類型,即wtforms.FileField。
  2. 驗(yàn)證器需要從flask_wtf.file中導(dǎo)入。flask_wtf.file.FileRequired和flask_wtf.file.FileAllowed
  3. flask_wtf.file.FileRequired是用來驗(yàn)證文件上傳不能為空。
  4. flask_wtf.file.FileAllowed用來驗(yàn)證上傳的文件的后綴名, 如常見圖片后綴.jpg和.png以及.gif等。
  5. 在視圖函數(shù)中,需要使用from werkzeug.datastructures import CombinedMultiDict來把request.form與request.files來進(jìn)行合并。
  6. 最后使用 表單驗(yàn)證對(duì)象.validate()進(jìn)行驗(yàn)證。

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啟動(dòng)文件:

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驗(yàn)證上傳的文件 
@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)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

惠州市| 合阳县| 贺兰县| 霍城县| 阳西县| 天镇县| 湘乡市| 汉中市| 冷水江市| 翁牛特旗| 灵山县| 闻喜县| 韶关市| 永登县| 寿宁县| 织金县| 乌兰浩特市| 定南县| 罗江县| 贞丰县| 开江县| 汉中市| 南郑县| 泾阳县| 同德县| 红河县| 辽宁省| 新巴尔虎左旗| 资源县| 冷水江市| 济源市| 嘉祥县| 尚志市| 大石桥市| 安平县| 通道| 鄂托克旗| 务川| 渭南市| 腾冲县| 保康县|