使用Flask-Restless和SQLAlchemy创建API

时间:2017-09-16 14:03:58

标签: python json api flask-sqlalchemy

我正在开发一个API,我似乎没有正确的语法。我想要做的是拥有1对多关系的嵌套三级API。 一个农场有多个家庭,每个家庭有多个人,但每个人只有一个家庭,每个家庭只住在一个农场。

我拥有的是:

class farm(db.Model):
    farm_id = Column(Integer, primary_key=True)
    area_id = Column(Integer, ForeignKey('area.area_id'))
    farm_name = Column(Text, unique=False)
    families = relationship('family_id',primaryjoin="farm.farm_id==family.farm_id")


class family(db.Model):
    family_id = Column(Integer, primary_key=True)
    farm_id = Column(Integer, ForeignKey('farm_id.farm_id'))
    person = relationship('person_id',primaryjoin="family.family_id==person.family_id")


class person(db.Model):
    person_id = Column(Integer, primary_key=True)
    family_id = Column(Integer, ForeignKey('family.family_id'))
    family_data = Column(Text, unique=False)
    family_year = Column(Text, unique=False)

这给了我两个API:s,两个级别。我想要做的就是加入它们,这样我只需要一个三级API。但我无法弄明白。从上面的代码API看起来像这样:

farm object:
{
  "objects": [
    {
      "area_id": 1,
      "families": [
        {
          "family_id": 1,
          "farm_id": 1
        }
      ],
      "farm_id": 1,
      "farm_name": "farm_one"
    },

家庭对象:

{
  "objects": [
    {
      "family_id": 1,
      "farm_id": 1,
      "persons": [
        {
          "family_data": "Name",
          "family_id": 1,
          "family_year": "Date",
          "person_id": 1
        }
      ]
    },

我想得到的是下面,但无论我尝试加入什么,关系声明数据,它都不会给我这个:

{
  "objects": [
    {
      "area_id": 1,
      "families": [
        {
          "family_id": 1,
          "farm_id": 1,
          "persons": [
            {
              "family_data": "Name",
              "family_year": "Date",
              "person_id": 1
            }
          ]
        }
      ],
      "farm_id": 1,
      "farm_name": "farm_one"
    },

你们对我在这里失踪了吗?

0 个答案:

没有答案