Flask上传文件到本地(底层方法实现)。
生活随笔
收集整理的這篇文章主要介紹了
Flask上传文件到本地(底层方法实现)。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先 New Project 一下 創建一個 Flask 項目
如果是社區版的話,就硬創建一個自己的 Flask 項目,自己創Templates,static,app
首先 在 templates (這個 s 不能少) 中創建一個 index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><h1>原生文件上傳</h1><!--定義一個表單,表單提交文件 一定要加上enctype="multipart/form-data,而且是post方法--><form action="" enctype="multipart/form-data" method="post"><input type="file" name="photo" /><input type="submit" value="立即上傳"></form> </body> </html>在app中編寫
import os # 為文件路徑 from flask import Flask,render_template,request from flask_script import Manager # 不用命令行啟動可以不要app = Flask(__name__) #配置 指定要上傳的路徑 'upload' app.config['UPLOAD_FOLDER'] = os.path.join(os.path.dirname(__file__),'upload') #允許上傳的文件名后綴 ALLOWED_EXTENSIONS = set(['png','jpg','jpeg','gif'])#配置 限定上傳文件大小 8M app.config['MAX_CONTENT_LENGTH'] = 8 * 1024 * 1024manager= Manager(app) # 不是命令行啟動可忽略。#判斷是否是允許的后綴 test.jpg def allow_file(filename):return '.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONSprint(allow_file('canglaoshi.jpg'))#生成隨機字符串 def random_string(length=16): # 第一種方法import randombase_str = '0987654321qwertyuiopasdfghjklzxcvbnm'return "".join(random.choice(base_str) for i in range(length))# 第二種方法# import string# source = list(string.ascii_letters)# for index in range(0,10):# source.append(str(index))# print(source)# return source@app.route('/',methods=['GET','POST']) def hello_world():# request.args[] #get請求參數# request.form[] #post 請求參數# request.filesif request.method == 'POST': # 表單為POST請求file = request.files.get('photo')if file and allow_file(file.filename): # 判斷是否滿足后綴名條件#獲取后綴名surfix = os.path.splitext(file.filename)[1] # 獲取文件后綴名# 新的文件名filename = random_string() + surfix # 生成隨機名稱的文件# 存儲file.save(os.path.join(app.config['UPLOAD_FOLDER'],filename)) return render_template('index.html') if __name__ == '__main__':app.run(debug=True) # 普通啟動# manager.run() 命令行啟動總結
以上是生活随笔為你收集整理的Flask上传文件到本地(底层方法实现)。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python用urlib爬虫基础及格式入
- 下一篇: 最全面实用的MySql操作大全。