3

如果 # api.add_resource(User, '/user/') 行未注释,而另一个 api.add_resource 是,则用户的 get 方法有效。反之亦然,使 post 方法起作用。

我怎样才能让这两条路径都起作用?

from flask import Flask, request
from flask.ext.restful import reqparse, abort, Api, Resource
import os
# set the project root directory as the static folder, you can set others.
app = Flask(__name__)
api = Api(app)

class User(Resource):

    def get(self, userid):
        print type(userid)
        if(userid == '1'):
            return {'id':1, 'name':'foo'}
        else:
            abort(404, message="user not found")

    def post(self):
        # should just return the json that was posted to it
        return request.get_json(force=True)

api.add_resource(User, '/user/')
# api.add_resource(User, '/user/<string:userid>')

if __name__ == "__main__":
    app.run(debug=True)
4

1 回答 1

10

Flask-Restful支持为单个资源注册多个 URLUser注册资源时只需提供两个 URL :

api.add_resource(User, '/user/', '/user/<userid>')
于 2014-07-16T02:28:20.470 回答