问题标签 [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.
javascript - 保存用户 Graphql Apollo Client
我正在尝试将用户 ID 保存到新业务。我不断收到 400 错误,不知道为什么。我使用 django 作为后端,带有 graphql,apollo 客户端作为前端,带有 vue js。根据我的请求,发送了用户 ID,但由于某种原因引发了 400 错误请求错误。
创建 Biz Mutation Apollo
创建 Biz 变异 Django
创建业务组件
django - 结合 DjangoObjectType 和 ObjectType
我有一个带有计算属性字段的简单 django 模型clicks
。该模型如下所示:
我想让这个模型在我的 graphql 端点中可以访问。所以我创建了以下类型和查询:
现在我应该能够在我的 graphql 资源管理器中使用以下查询:
我的预期结果是这样的:
clicks
但是和的嵌套值dt
是null
:
那么我在这里做错了什么?如何将字典列表转换为石墨烯中的 ObjectType?
编辑:
我使用了@mark-chackerian 答案的修改版本来解决问题:似乎我对石墨烯的“魔力”期待太多,我必须明确告诉它每个字段是如何解决的。
python - 使用石墨烯和 SQLalchemy 为 GraphQL 设置权限很热门
我的石墨烯架构上有客户、用户、项目和旅行:
我想要做的是设置权限,以便有人传递与一个特定客户匹配的访问令牌,并仅显示该特定客户的用户、项目和旅行。
这个怎么做?石墨烯有没有办法做到这一点?
python - Django 模型对象和石墨烯 get_node
到目前为止,我能够在不需要DjangoObjectType
. 我尽量避免它,因为我不打算离我的 Django 模型类太近。但是,我在使用 Graphene 实现 Relay 时遇到了问题:
这失败并出现以下错误:
抽象类型节点必须在运行时为字段 Query.node 解析为对象类型,值为“Test”,收到“None”。
“测试”直接来自Household
的__str__
函数。
下次尝试:
cls
是HouseholdNode
。然而,这会产生错误的结果:
ID实际上是“测试”。
有效的解决方案:
然而,我非常怀疑这就是 Graphene 能为我做的所有事情。我真的必须将真实的数据对象包装到 中HouseholdNode
吗?我已经有解决功能,不能简单地使用它们吗?
这些边缘上的文档非常缺乏,请赐教。
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对数据库进行查询并更新对应的记录
有一个更好的方法吗?
python - 使用 Graphene 执行突变时获取记录的全局 ID
我正在使用 python 包 Flask、SQLAlchemy、Graphene 和 Graphene-SQLAlchemy 构建 GraphQL API。我遵循了SQLAlchemy + Flask 教程。我能够执行突变来创建记录,并且我想在 API 的响应中获取此记录的全局 ID:
以下是为突变实现的类:
以下突变工作正常
但是当我在有效负载中添加“id”字段时,我收到以下错误消息:
以下是 Flask 应用程序生成的日志:
python - 石墨烯 - GraphQL:“请求”对象没有属性“上下文”
我正在开发一个简单的 GraphQL Flask API,并且正在实现一个简单的查找用户解析器。这是我的schema.py
我正在使用graphene
2.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 上下文吗?
python - 如何在石墨烯烧瓶中进行多个查询过滤器?
我是 GraphQL 的新手,我正在尝试进行这样的查询
我想过滤用户在草稿中的帖子列表
我可以进行查询的唯一方法是通过模型的关系,但无法过滤草稿中的帖子。一对多
有了这种关系,我用“backref = 'posts'”显示帖子节点
我的对象:
询问:
我想让帖子的查询属于用户
有什么想法或建议吗?
django - 使用 RESTfull API 作为数据源的石墨烯关系
我正在使用 django graphene 构建 graphql 服务器,它使用 RESTfull API 来获取数据,遵循以下模式:
我需要做的查询是这样的:
所以,我的问题是如何与这两种类型建立关系,如 中所述AllDataType
,resolve_installation
需要device id
和resolve_all
需要设备的序列号。
要解决安装,我需要解析器device id
返回的内容。resolve_all
我怎样才能做到这一点?
django - graphene-django 是否动态创建 API 文档?
我正在考虑将 GraphQL 与 Django 后端服务一起使用,但我找不到有关 API 文档的太多信息。我需要一些解决方案来动态生成文档,比如 npm 的graphql-docs,其结果类似于GitHub 的 API docs。
用graphene-django完成是否可行?如果没有,python 环境有什么好的选择?