Python,Flask - 如何构建一个宁静的Web服务方法来管理上传的文件?

时间:2014-08-25 15:01:24

标签: python web-services rest upload flask

我有以下方法来处理将文件上传到我的Web服务。我是以一种宁静的方式写的吗?特别是,我对if语句感兴趣 - 每个文件操作都应该为它定义自己的方法或路由吗?或者有一个方法的多个“if”语句是处理休息的好方法操作

from flask import Flask
from flask import Response, request, redirect, url_for

@app.route('/files/<type>/<id>', methods=['GET', 'POST', 'DELETE'])
def manage_files(type,id):

    if request.method == 'POST':
        #add a note


    if request.method == 'GET':
        #retrieve a note


    if request.method == 'DELETE':
        #delete a file

    return;

2 个答案:

答案 0 :(得分:2)

我没有看到任何问题,但如果您使用flask-restful extension,则代码会更漂亮。例如:

class  Fileupload(Resource):

    def get(self):
        pass

    def post(self, user_id):
        pass

    def delete(self, user_id, file_id):
        pass

答案 1 :(得分:1)

对于您希望如何构建Flask REST调用,更多的是个人偏好。我更喜欢每条路线的风格,单独的方法,由Matt Wright在http://mattupstate.com/python/2013/06/26/how-i-structure-my-flask-applications.html提出。

 @app.route('/files/<type>/<id>'):
 def show_file(type, id):
    return None

 @app.route('/files/<type>', methods=['POST']):
 def new_file(type):
    return None

 @app.route('/files/<type>/<id>', methods=['DELETE']):
 def delete_file(type, id):
    return None