Flask/SqlAlchemy/Graphene如何从DB查询对象并更改值?

2024-10-03 15:22:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望打开一个GraphQL突变端点,在该端点中发送id和字符串。这将基于ID收集项并更改对象中的值,然后将项中的更改保存到DB中。你知道吗

它看起来像这样:

Query SomeMutation{
ExampleMutation(input: {id: 1, Status: "Something"}){
    ExampleObject{
        id
        Status
     }
 }
}

我目前有以下设置:

你知道吗(架构.py)你知道吗

class Mutation(graphene.ObjectType):
    ExampleMutation = ExampleMutation.Field()

(架构_示例对象.py)你知道吗

class Captcha(SQLAlchemyObjectType):
    class Meta:
        model = ExampleObjectModel
        interfaces = (relay.Node,)

你知道吗(示例.py)你知道吗

class Attributes:
    id = graphene.Int(description="Id")
    status = graphene.String(description="Status")


class ExampleMutationInput(graphene.InputObjectType, Attributes):
    pass


class ExampleSolution(graphene.Mutation):
    ExampleObject= graphene.Field(lambda: ExampleObject, description="Example Object")

    class Arguments:
        input = ExampleMutationInput(required=True)

    def mutate(self, info, input):
        data = input

        # **** Here I want to query an item from the DB based on the ID and change a value in it, then save it in the DB and return the new object to the GraphQL. ****

        return ExampleMutation(exampleobject=exampleobject)

我在网上查看了解决方案,发现库调用将以以下方式工作:

item = ExampleObject.query.filter(blablanla)

但是这个对象没有“Query”这样的函数,所以我很困惑。你知道吗


Tags: the对象pyidinputdbstatusdescription
1条回答
网友
1楼 · 发布于 2024-10-03 15:22:47

我找到了正确的操作方法:

 query = ExameObject.get_query(info=info)
 query = query.filter(ExampleObject.id == data.id)
 example_object = query.first()

相关问题 更多 >