用30行代碼開發一個上傳、下載文件的接口


分享一段代碼,開發了3個接口:
            1、上傳文件
            2、查看所有文件
            3、下載文件

使用python開發,需要安裝flask模塊,使用pip install flask安裝即可,代碼量特別少,就能實現,加上注釋總共35行代碼,特別的簡單,代碼如下:

import flask,os,time
from flask import request,send_from_directory,jsonify
app = flask.Flask(__name__)#創建一個app,代表這個web服務
@app.route('/get_file',methods=['get'])
def get_file():
    #下載文件接口
    filename = request.values.get('fname',None)
    #獲取需要下載的文件名
    if filename:#如果獲取到的文件名話
        if os.path.isfile(filename):#判斷是否是一個文件
            #返回要下載的文件
            return send_from_directory('.',filename,as_attachment=True)
        else:
            return jsonify({"msg":"文件不存在!"})
    else:
        return jsonify({'msg':'文件名不能為空'})
@app.route('/files',methods=['get'])
def file_list():
    #獲取文件列表接口
    files = os.listdir('.')#獲取當前目錄下所有文件
    new_files = [f for f in files if os.path.isfile(f)]
    #三元運算符,把是文件的放到list中
    return jsonify({"files":new_files})
@app.route('/upload',methods=['post'])
def upload():
    #上傳文件接口
    f = request.files.get('file_name',None)
    if f:
        t = time.strftime('%Y%m%d%H%M%S')#獲取當前時間
        new_file_name = t+f.filename#給文件重命名,防止有重復文件覆蓋
        f.save(new_file_name)#保存文件
        return jsonify({"code":"ok"})
    else:
        return jsonify({"msg":"請上傳文件!"})
app.run(debug=True,port=8888)#啟動這個web服務

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM