【问题标题】:Graphene Django returning null values石墨烯 Django 返回空值
【发布时间】:2019-01-19 16:20:13
【问题描述】:

当使用以下架构时,我在查询产品时不断得到空值。根据我对文档的理解,它应该返回一个包含 2 个对象的数组,其中包含 id 和 name。谁能帮我理解为什么下面的代码不起作用?

import graphene

class Product(graphene.ObjectType):
    id = graphene.Int()
    name = graphene.String()


class Query(graphene.ObjectType):
    products = graphene.List(Product)

    def resolve_products(self, info, **kwargs):
        return [{
            "name": "TEST", "id": 1
        }, {
            "name": "TEST2", "id": 2
        }]

schema = graphene.Schema(query=Query)

【问题讨论】:

  • 您的 resolve_products 方法返回的是字典列表,而不是 Product 列表
  • 对不起,但我不确定我是否完全理解。 Product 不是对象类型吗?
  • 抱歉,误读了你说的话。谢谢

标签: python graphql graphene-python


【解决方案1】:

我不知道你现在是否想通了。我遇到了和你一样的问题,感谢互联网。以下答案可能会有所帮助。

PS,我使用flask 来可视化网络。

from flask import Flask
from flask_graphql import GraphQLView
import graphene

app = Flask(__name__)

class Product(graphene.ObjectType):
    id = graphene.Int()
    name = graphene.String()

class Query(graphene.ObjectType):
    products = graphene.List(Product)

    def resolve_products(self, info, **kwargs):
        return [Product(name="TEST", id=1), Product(name="TEST2", id= 2)]

schema = graphene.Schema(query=Query)
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql',
    schema=schema, graphiql=True))

app.run(port=4901)

运行.py时,输入http://localhost:4901/graphql查询。

query{
  users{
    id
  }
}

返回一个列表类型。 return [Product(name="TEST", id=1), Product(name="TEST2", id= 2)]

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 2019-12-20
    • 2018-01-11
    • 2020-09-01
    • 2021-03-14
    • 2021-09-25
    • 2020-09-05
    • 2017-08-20
    • 2020-09-03
    相关资源
    最近更新 更多