路由
在上一遍文章中,我使用了 Flask 的视图函数来定义所有的路由。
Flask-RESTful 提供了一个 Resource 基础类,它能够定义一个给定 URL 的一个或者多个 HTTP 方法。例如,定义一个可以使用 HTTP 的 GET, PUT 以及 DELETE 方法的 User 资源,你的代码可以如下:
- from flask import Flask
- from flask.ext.restful import Api, Resource
- app = Flask(__name__)
- api = Api(app)
- class UserAPI(Resource):
- def get(self, id):
- pass
- def put(self, id):
- pass
- def delete(self, id):
- pass
- api.add_resource(UserAPI, '/users/<int:id>', endpoint = 'user')
add_resource 函数使用指定的 endpoint 注册路由到框架上。如果没有指定 endpoint,Flask-RESTful 会根据类名生成一个,但是有时候有些函数比如 url_for 需要 endpoint,因此我会明确给 endpoint 赋值。
我的待办事项 API 定义两个 URLs:/todo/api/v1.0/tasks(获取所有任务列表),以及 /todo/api/v1.0/tasks/<int:id>(获取单个任务)。我们现在需要两个资源:
- class TaskListAPI(Resource):
- def get(self):
- pass
- def post(self):
- pass
- class TaskAPI(Resource):
- def get(self, id):
- pass
- def put(self, id):
- pass
- def delete(self, id):
- pass
- api.add_resource(TaskListAPI, '/todo/api/v1.0/tasks', endpoint = 'tasks')
- api.add_resource(TaskAPI, '/todo/api/v1.0/tasks/<int:id>', endpoint = 'task')
当前内容版权归 pythondoc.com 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 pythondoc.com .