欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

flask利用flask-wtf驗證上傳的文件的方法

 更新時間:2020年01月17日 11:04:44   作者:Python''sGod  
這篇文章主要介紹了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文件:

<!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光學仿真教程實現(xiàn)光線追蹤

    Python光學仿真教程實現(xiàn)光線追蹤

    傳統(tǒng)的高斯光學是建立在傍軸近似基礎之上的理想成像理論,這種處理以物像關系為核心,通過基點對光路的成像特性進行描述。然而,傍軸近似在一定程度上犧牲了精確性,從而使得需要一套像差理論作為補充
    2021-10-10
  • Vscode?遠程切換Python虛擬環(huán)境的詳細步驟

    Vscode?遠程切換Python虛擬環(huán)境的詳細步驟

    使用VSCode遠程切換Python虛擬環(huán)境涉及安裝VSCode和必要擴展、連接遠程服務器、創(chuàng)建或激活虛擬環(huán)境,并選擇對應Python解釋器,詳細步驟包括安裝Python和Remote-SSH擴展,感興趣的朋友一起看看吧
    2024-09-09
  • Django中create和save方法的不同

    Django中create和save方法的不同

    這篇文章主要給大家介紹了關于Django中create和save方法的不同之處,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Python format函數詳談

    Python format函數詳談

    這篇文章主要介紹了Python中用format函數格式化字符串的用法,格式化字符串是Python學習當中的基礎知識,希望能夠給你帶來幫助
    2021-10-10
  • python3通過selenium爬蟲獲取到dj商品的實例代碼

    python3通過selenium爬蟲獲取到dj商品的實例代碼

    這篇文章主要介紹了python3通過selenium爬蟲獲取到dj商品的實例代碼,需要的朋友可以參考下
    2019-04-04
  • 跟老齊學Python之集合的關系

    跟老齊學Python之集合的關系

    前面一節(jié)講述了集合的基本概念,注意,那里所涉及到的集合都是可原處修改的集合。還有一種集合,不能在原處修改。
    2014-09-09
  • Python生成器(Generator)詳解

    Python生成器(Generator)詳解

    這篇文章主要介紹了Python生成器(Generator)詳解,本文講解了什么是生成器、簡單生成器、帶yield 語句的生成器、加強的生成器等內容,需要的朋友可以參考下
    2015-04-04
  • 用python 批量更改圖像尺寸到統(tǒng)一大小的方法

    用python 批量更改圖像尺寸到統(tǒng)一大小的方法

    下面小編就為大家分享一篇用python 批量更改圖像尺寸到統(tǒng)一大小的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Python3基于print打印帶顏色字符串

    Python3基于print打印帶顏色字符串

    這篇文章主要介紹了Python3使基于print打印帶顏色字符串,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Python的Asyncore異步Socket模塊及實現(xiàn)端口轉發(fā)的例子

    Python的Asyncore異步Socket模塊及實現(xiàn)端口轉發(fā)的例子

    asyncore模塊是封裝過的處理socket事件的模塊,采用異步的處理方式,這里我們講來講解Python的Asyncore異步Socket模塊及實現(xiàn)端口轉發(fā)的例子,需要的朋友可以參考下
    2016-06-06

最新評論