【发布时间】:2016-04-30 16:01:03
【问题描述】:
我的 Flask 路由定义如下:
@api_app.route('/api/1.0/infrastructure/', methods=['POST'])
def create_infrastructure():
return (jsonify({'job': job_instance.reference}), 202,
{'Location': url_for('get_job', ref=job_instance.reference, _external=True)})
get_job 函数:
@api_app.route('/api/1.0/job/<string:ref>', methods=['GET'])
def get_job(ref):
job = Model.Job.query.filter_by(reference=ref).first()
if not job:
abort(400)
return jsonify({'job': job.reference})
我迁移到了 flask.ext.restful 环境,现在看起来像这样:
from flask.ext.restful import Resource
class Job(Resource):
def get(self, ref):
job = Model.Job.query.filter(Model.Job.reference == ref).first()
if job:
return jsonify(job.serialize())
resp = Response(status=404, mimetype='application/json')
return resp
在这个基于类的 API 中使用 flask.ext.restful 如何在基于类的环境中定义 url_for 参数?
在我的主应用文件中:
api.add_resource(Job, '/api/1.0/job/<string:ref>')
imbue_api.add_resource(Infrastructures, '/api/1.0/infrastructure')
【问题讨论】:
标签: python rest flask flask-restful