问题标签 [graphene-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
130 浏览

javascript - 保存用户 Graphql Apollo Client

我正在尝试将用户 ID 保存到新业务。我不断收到 400 错误,不知道为什么。我使用 django 作为后端,带有 graphql,apollo 客户端作为前端,带有 vue js。根据我的请求,发送了用户 ID,但由于某种原因引发了 400 错误请求错误。

创建 Biz Mutation Apollo

创建 Biz 变异 Django

创建业务组件

0 投票
1 回答
2003 浏览

django - 结合 DjangoObjectType 和 ObjectType

我有一个带有计算属性字段的简单 django 模型clicks。该模型如下所示:

我想让这个模型在我的 graphql 端点中可以访问。所以我创建了以下类型和查询:

现在我应该能够在我的 graphql 资源管理器中使用以下查询:

我的预期结果是这样的:

clicks但是和的嵌套值dtnull

那么我在这里做错了什么?如何将字典列表转换为石墨烯中的 ObjectType?

编辑:

我使用了@mark-chackerian 答案的修改版本来解决问题:似乎我对石墨烯的“魔力”期待太多,我必须明确告诉它每个字段是如何解决的。

0 投票
1 回答
904 浏览

python - 使用石墨烯和 SQLalchemy 为 GraphQL 设置权限很热门

我的石墨烯架构上有客户、用户、项目和旅行:

我想要做的是设置权限,以便有人传递与一个特定客户匹配的访问令牌,并仅显示该特定客户的用户、项目和旅行。

这个怎么做?石墨烯有没有办法做到这一点?

0 投票
1 回答
1609 浏览

python - Django 模型对象和石墨烯 get_node

到目前为止,我能够在不需要DjangoObjectType. 我尽量避免它,因为我不打算离我的 Django 模型类太近。但是,我在使用 Graphene 实现 Relay 时遇到了问题:

这失败并出现以下错误:

抽象类型节点必须在运行时为字段 Query.node 解析为对象类型,值为“Test”,收到“None”。

“测试”直接来自Household__str__函数。

下次尝试:

clsHouseholdNode。然而,这会产生错误的结果:

ID实际上是“测试”。

有效的解决方案:

然而,我非常怀疑这就是 Graphene 能为我做的所有事情。我真的必须将真实的数据对象包装到 中HouseholdNode吗?我已经有解决功能,不能简单地使用它们吗?

这些边缘上的文档非常缺乏,请赐教。

0 投票
1 回答
4021 浏览

python - 使用 Graphene 和 SQLAlchemy 通过 GraphQL API 更新记录

我正在使用 python 包 Flask、SQLAlchemy、Graphene 和 Graphene-SQLAlchemy 构建 GraphQL API。我遵循了SQLAlchemy + Flask 教程。我能够执行查询和突变来创建记录。现在我想知道更新现有记录的最佳方法是什么。

这是我当前的脚本schema.py

评论:

  • 我的对象BatchOwner只有 2 个属性(ID、名称)
  • 为了能够更新BatchOwner名称,我假设我需要提供数据库 ID(而不是中继全局 ID)作为某些更新方法的输入参数
  • 但是当我从我的客户那里查询 a 时BatchOwner,Graphene 只返回我使用 base64 编码的全局 ID(例如:QmF0Y2hPd25lcjox,对应于BatchOwner:1

响应示例:

我目前正在考虑的解决方案是:

  • 创建一个以全局 ID 作为参数的更新突变
  • 解码全局 ID(如何?)
  • 使用解码后的全局Id检索到的数据库Id对数据库进行查询并更新对应的记录

有一个更好的方法吗?

0 投票
2 回答
1091 浏览

python - 使用 Graphene 执行突变时获取记录的全局 ID

我正在使用 python 包 Flask、SQLAlchemy、Graphene 和 Graphene-SQLAlchemy 构建 GraphQL API。我遵循了SQLAlchemy + Flask 教程。我能够执行突变来创建记录,并且我想在 API 的响应中获取此记录的全局 ID:

以下是为突变实现的类:

以下突变工作正常

但是当我在有效负载中添加“id”字段时,我收到以下错误消息:

以下是 Flask 应用程序生成的日志:

0 投票
1 回答
2625 浏览

python - 石墨烯 - GraphQL:“请求”对象没有属性“上下文”

我正在开发一个简单的 GraphQL Flask API,并且正在实现一个简单的查找用户解析器。这是我的schema.py

我正在使用graphene2.0 并且代码在经过一些谷歌搜索后返回错误"message": "resolve_find_user() got an unexpected keyword argument 'name'",,看起来这是改变解析器工作方式的一个重大变化。graphene

我经历了UPGRADE-v2.0.md并相应地改变了事情。解析器现在看起来像这样。

现在,关键字参数消失了,但我遇到了一个新问题。错误是"message": "'Request' object has no attribute 'context'",。现在我很困惑,因为我认为info.context应该有效,但显然不是。关于如何解决这个上下文问题的任何想法?这是我第一次使用 GraphQL,非常感谢任何帮助!

编辑:它看起来像type(info)is a<class 'graphql.execution.base.ResolveInfo'>type(info.context)is <class 'werkzeug.local.LocalProxy'>。应该context是 SQLAlchemy 上下文吗?

0 投票
1 回答
4035 浏览

python - 如何在石墨烯烧瓶中进行多个查询过滤器?

我是 GraphQL 的新手,我正在尝试进行这样的查询

我想过滤用户在草稿中的帖子列表

我可以进行查询的唯一方法是通过模型的关系,但无法过滤草稿中的帖子。一对多

有了这种关系,我用“backref = 'posts'”显示帖子节点

我的对象:

询问:

我想让帖子的查询属于用户

有什么想法或建议吗?

0 投票
1 回答
445 浏览

django - 使用 RESTfull API 作为数据源的石墨烯关系

我正在使用 django graphene 构建 graphql 服务器,它使用 RESTfull API 来获取数据,遵循以下模式:

我需要做的查询是这样的:

所以,我的问题是如何与这两种类型建立关系,如 中所述AllDataTyperesolve_installation需要device idresolve_all需要设备的序列号。

要解决安装,我需要解析器device id返回的内容。resolve_all

我怎样才能做到这一点?

0 投票
1 回答
1060 浏览

django - graphene-django 是否动态创建 API 文档?

我正在考虑将 GraphQL 与 Django 后端服务一起使用,但我找不到有关 API 文档的太多信息。我需要一些解决方案来动态生成文档,比如 npm 的graphql-docs,其结果类似于GitHub 的 API docs

用graphene-django完成是否可行?如果没有,python 环境有什么好的选择?