Flask 檔案上傳

2021-08-06 00:09:55 字數 1594 閱讀 6122

class

movieform

(flaskform):

url = filefield(

label='檔案',

validators=[

datarequired('請上傳檔案!')

],description='檔案'

def

change_filename

(filename):

fileinfo = os.path.splitext(filename) #把檔名分解為字尾和字首

filename = datetime.datetime.now().strftime('%y%m%d%h%m%s')+str(uuid.uuid4().hex)+fileinfo[-1]

return filename

有很多時候我們直接傳入檔名是不安全的,需要secure_filename把檔名轉化成安全的名稱,這時我們需要定義加密函式:

@admin.route('/movie/add/',methods=['get','post'])

defmovie_add

(): form = movieform()

if form.validate_on_submit():

data = form.data

#secure_filename使傳入的檔名變得安全

file_url = secure_filename(form.url.data.filename)

file_logo = secure_filename(form.logo.data.filename)

if#如果不存在儲存的目錄,則建立該目錄

#設定該目錄可讀可寫

#名稱規範化

url = change_filename(file_url)

logo = change_filename(file_logo)

#進行儲存

#設施movie模型例項

movie = movie(

url = url,

)db.session.add(movie)

db.session.commit()

flash('新增電影成功','ok')

return redirect(url_for('admin.movie_add'))

return render_template('admin/movie_add.html',form=form)

class="alert alert-success alert-dismissible">

type="button"

class="close"

data-dismiss="alert"

aria-hidden="true">×button>

class="icon fa fa-check">

i> 操作成功!h4>}}

class="col-md-12">

style="color:red">

}font>

div>

flask實現檔案的上傳

檔案上傳過程中,一定要進行檔案大小的校驗,如果使用者上傳檔案過大,比如 100gb,所以一直在處理這個請求,別的請求進來就無法處理了,所以要限制上傳檔案的大小。flask中,提供了校驗檔案大小的機制,所以在配置檔案中進行配置,並重寫異常返回資訊即可。自定製錯誤返回資訊 在flask內部,會幫我們校驗...

windows下Flask上傳檔案路徑

在windows下用flask實現上傳,上傳後總是找不到正確的資料夾路徑。修改上傳資料夾為如下的時候 upload folder sys.path 0 上傳到程式所在的當前資料夾,但是新增了當前路徑下的資料夾後就會出錯,試過了各種組合,最後找到了乙個很好的並且可以隨意任何作業系統之間遷移的方法 py...

python基礎flask 爬蟲上傳檔案

不以物喜不以己悲 人生不能放棄 今天的學習目標是 爬蟲上傳檔案到flask伺服器 1.客戶端程式 import urllib import urllib.request import os url filename fe.png try fobj open filename,rb 讀出資料 data...