zoukankan      html  css  js  c++  java
  • python习题:上传下载的接口

    分享一段代码,开发了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服务
  • 相关阅读:
    Java零基础学习(四)JSP与Servlet
    Java零基础学习(三)封装继承多态
    vsftpd+nginx搭建图片服务器的一些问题
    1003. 我要通过!(20)(两种语言的运行时间差异)
    acm 1108 java做法
    acm 2020 用java实现
    acm 2519 java做法
    acm 2040 java做法
    acm 2003 java做法
    acm 2041 java的做法
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8371211.html
Copyright © 2011-2022 走看看