用30行代码开发一个上传下载文件的接口

Posted 尘世风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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服务

 

 

以上是关于用30行代码开发一个上传下载文件的接口的主要内容,如果未能解决你的问题,请参考以下文章

PHP必用代码片段

1行Python代码,计算程序的运行时间,也可以用在算法和接口的调优上

女友半夜加班发自拍 python男友用30行代码发现惊天秘密

女友半夜加班发自拍 python男友用30行代码发现惊天秘密

开发一个上传/下载文件的接口

30秒就能看懂的JavaScript 代码片段