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

Flask框架編寫文件下載接口過程講解

 更新時間:2023年01月03日 15:34:42   作者:袖子味  
這篇文章主要介紹了Flask框架編寫文件下載接口的過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

方式一

@app.route("/download1")
def download():
    # return send_file('test.exe', as_attachment=True)
    return send_file('2.jpg')
    # return send_file('1.mp3')

如果不加as_attachment參數(shù),則會向瀏覽器發(fā)送文件,比如發(fā)送一張圖片:

發(fā)送mp3

加上as_attachment參數(shù),則會下載文件。

方式二

通過Response來實現(xiàn)

部分代碼如下:

@app.route("/download2")
def download2():
    file_name = "1.jpg"
    #https://www.runoob.com/http/http-content-type.html
    response = Response(file_send(file_name), content_type='image/jpeg')
    response.headers["Content-disposition"] = f'attachment; filename={file_name}'
    return response

其中content-type要根據(jù)文件的具體類型來設(shè)置,具體參考如下常見的:

content-type(內(nèi)容類型),一般是指網(wǎng)頁中存在的 content-type,用于定義網(wǎng)絡(luò)文件的類型和網(wǎng)頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件,content-type 標(biāo)頭告訴客戶端實際返回的內(nèi)容的內(nèi)容類型。

常見的媒體格式類型如下:

  • text/html : HTML格式
  • text/plain :純文本格式
  • text/xml : XML格式
  • image/gif :gif圖片格式
  • image/jpeg :jpg圖片格式
  • image/png:png圖片格式
  • application/xhtml+xml :XHTML格式
  • application/xml: XML數(shù)據(jù)格式
  • application/atom+xml :Atom XML聚合格式
  • application/json: JSON數(shù)據(jù)格式
  • application/pdf:pdf格式
  • application/msword : Word文檔格式
  • application/octet-stream : 二進(jìn)制流數(shù)據(jù)(如常見的文件下載)
  • application/x-www-form-urlencoded : 中默認(rèn)的encType,form表單數(shù)據(jù)被編碼為key/value格式發(fā)送到服務(wù)器(表單默認(rèn)的提交數(shù)據(jù)的格式)

完整代碼

app.py

from flask import Flask,send_file,Response
from flask_cors import CORS
app = Flask(__name__)
CORS(app,resources={r"/*": {"origins": "*"}},supports_credentials=True)
@app.route("/download1")
def download():
    # return send_file('test.exe', as_attachment=True)
    # return send_file('2.jpg')
    return send_file('1.mp3')
    # filefold file
    # return send_from_directory('./', 'test.exe', as_attachment=True)
# send big file
def file_send(file_path): 
    with open(file_path, 'rb') as f:
        while 1:
            data = f.read(20 * 1024 * 1024)  # per 20M
            if not data:
                break
            yield data
@app.route("/download2")
def download2():
    file_name = "1.jpg"
    response = Response(file_send(file_name), content_type='image/jpeg')
    response.headers["Content-disposition"] = f'attachment; filename={file_name}'
    return response
if __name__ == '__main__':
    app.config['JSON_AS_ASCII'] = False
    app.run(debug=True)

到此這篇關(guān)于Flask框架編寫文件下載接口過程講解的文章就介紹到這了,更多相關(guān)Flask文件下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中關(guān)于集合的介紹與常規(guī)操作解析

    Python中關(guān)于集合的介紹與常規(guī)操作解析

    Python除了List、Tuple、Dict等常用數(shù)據(jù)類型外,還有一種數(shù)據(jù)類型叫做集合(set),集合的最大特點是:集合里邊的元素是不可重復(fù)的并且集合內(nèi)的元素還是無序的
    2021-09-09
  • Python文本處理簡單易懂方法解析

    Python文本處理簡單易懂方法解析

    這篇文章主要介紹了Python文本處理簡單易懂方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 四步教你學(xué)會打包一個新的Python模塊

    四步教你學(xué)會打包一個新的Python模塊

    當(dāng)你安裝應(yīng)用程序時,通常是安裝一個軟件包,其中包含應(yīng)用程序的可執(zhí)行代碼和重要文件。在?Linux上,軟件一般被打包成RPM或DEB等格式,然而幾乎每天都有新的Python模塊發(fā)布,因此你很容易遇到一個尚未打包的Python模塊。本文教你四步打包一個新的Python模塊
    2022-09-09
  • 一文帶你手撕Python之散列類型

    一文帶你手撕Python之散列類型

    這篇文章主要介紹了Python字典的定義、操作方法和集合的基本概念,字典以鍵值對形式存儲數(shù)據(jù),可通過鍵訪問值,操作包括增刪改查等,集合是無序不重復(fù)的數(shù)據(jù)結(jié)構(gòu),適用于去重和集合運算,需要的朋友可以參考下
    2024-09-09
  • Python中的函數(shù)作用域

    Python中的函數(shù)作用域

    在python中,一個函數(shù)就是一個作用域。這篇文章重點給大家介紹python中的函數(shù)作用域,感興趣的朋友一起看看吧
    2018-05-05
  • Python?Concurrent?Futures解鎖并行化編程的魔法示例

    Python?Concurrent?Futures解鎖并行化編程的魔法示例

    Python的concurrent.futures模塊為并行化編程提供了強(qiáng)大的工具,使得開發(fā)者能夠輕松地利用多核心和異步執(zhí)行的能力,本文將深入探討concurrent.futures的各個方面,從基礎(chǔ)概念到高級用法,為讀者提供全面的了解和實用的示例代碼
    2023-12-12
  • 使用Python正則表達(dá)式操作文本數(shù)據(jù)的方法

    使用Python正則表達(dá)式操作文本數(shù)據(jù)的方法

    這篇文章主要介紹了使用Python正則表達(dá)式操作文本數(shù)據(jù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Python數(shù)據(jù)結(jié)構(gòu)之雙向鏈表詳解

    Python數(shù)據(jù)結(jié)構(gòu)之雙向鏈表詳解

    單鏈表只有一個指向直接后繼的指針來表示結(jié)點間的邏輯關(guān)系,可以方便的從任一結(jié)點開始查找其后繼結(jié)點,但要找前驅(qū)結(jié)點則比較困難,雙向鏈表是為了解決這一問題,使用兩個指針表示結(jié)點間的邏輯關(guān)系。本文將重點為大家介紹雙向鏈表的相關(guān)操作,需要的可以參考一下
    2022-01-01
  • Python入門_淺談字符串的分片與索引、字符串的方法

    Python入門_淺談字符串的分片與索引、字符串的方法

    下面小編就為大家?guī)硪黄狿ython入門_淺談字符串的分片與索引、字符串的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 詳解如何使用Python隱藏圖像中的數(shù)據(jù)

    詳解如何使用Python隱藏圖像中的數(shù)據(jù)

    隱寫術(shù)是在任何文件中隱藏秘密數(shù)據(jù)的藝術(shù)。隱寫術(shù)的主要目的是隱藏任何文件中的預(yù)期信息,而不實際改變文件的外觀,即文件外觀看起來和以前一樣。本文將利用Python實現(xiàn)隱藏圖像中的數(shù)據(jù),需要的可以參考一下
    2022-02-02

最新評論

武清区| 科技| 青海省| 武宁县| 革吉县| 司法| 兴文县| 淮安市| 克拉玛依市| 根河市| 孟村| 固镇县| 江山市| 邵阳县| 泸州市| 宜昌市| 广饶县| 新化县| 孙吴县| 景谷| 临夏县| 扎兰屯市| 祁东县| 包头市| 乌恰县| 博爱县| 逊克县| 萨迦县| SHOW| 卓尼县| 漳浦县| 宝鸡市| 海晏县| 翁牛特旗| 德江县| 济宁市| 凤阳县| 泌阳县| 合江县| 仁怀市| 香河县|