我的flask / restless应用程序中有两个模型:Blueprint和Workload 蓝图应该有一组工作量。
以下是模型:
class Blueprint(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120), unique=True)
description = db.Column(db.String(250), unique=True)
class Workload(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120), unique=True)
description = db.Column(db.String(250), unique=True)
image = db.Column(db.String(120), unique=True)
flavor = db.Column(db.String(120), unique=True)
blueprint_id = db.Column(db.Integer, db.ForeignKey('blueprint.id'))
blueprint = db.relationship(Blueprint, backref='workloads')
db.create_all()
# Create the Flask-Restless API manager.
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)
# Create API endpoints, which will be available at /api/<tablename> by
# default. Allowed HTTP methods can be specified as well.
manager.create_api(Blueprint, methods=['GET', 'PUT', 'POST', 'DELETE'])
manager.create_api(Workload, methods=['GET', 'PUT', 'POST', 'DELETE'])
使用curl或python的正确语法是将Workload实例添加到Blueprint的“工作负载”集合中吗?
答案 0 :(得分:1)
最后找到了答案:将一个Workload作为子项添加到Blueprint:curl --request PATCH -H“Content-Type:application / json”-d'{“blueprint”:{“id”:1}} 'http://127.0.0.1:5000/api/workload/1鉴于上面的模型定义,这完全符合我们的要求。然后,当我们运行curl -i -X GET -H“Accept:application / json”http://127.0.0.1:5000/api/blueprint/1时,我们得到一个特定的蓝图以及属于它的工作负载列表