1. 程式人生 > >Flask 實現檔案上傳下載功能

Flask 實現檔案上傳下載功能

檔案下載的兩種方法, 一是構建檔案url,二是使用flask.send_from_directory(directory, filename, **options),介紹第一種方法,是我寫著寫著就發現的,第二種方法就查api吧,不介紹了。
檔案下載一般都是先有一個“下載”的按鈕,點選後會出現檔案下載的提示框(瀏覽器),出現這個提示框就證明成功了
首先是html模板檔案上該怎麼寫,很簡單:

</pre><p><pre name="code" class="html"><input id="fat-btn" class="btn btn-default"
type="button" value='Download' onclick="location.href='
{{ url_for('download', filename=downUrl)}}'">

其中的id和class使用的是bootstrap,可自行更換;
再說一下 url_for(‘download’, filename=downUrl),
第一個引數是一個檢視函式,函式名為download,下面有該函式程式碼,至於第二個引數downUrl是另一個檢視函式傳遞到模板中的引數,該引數內容就是要下載的檔案路徑,
也就是說我們構建的url就是檔案的下載地址,使用flask應用最好將靜態檔案放在static資料夾下面,例如這樣的下載地址:
127.0.0.1:5000/static/filename
引數downUrl就是static/filename這一段,需要加單引號,如‘static/filename.suffix’

上面的download函式是這樣的:

@app.route('/<filename>')  
def download(filename):  
    return None