码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-11-18 14:55:07      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:pytho   def   web   os.path   path   directory   保存文件   注释   下载文件   

分享一段代码,开发了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行代码开发一个上传、下载文件的接口

标签:pytho   def   web   os.path   path   directory   保存文件   注释   下载文件   

原文地址:http://www.cnblogs.com/feng0815/p/7856567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!