问题标签 [graphene-sqlalchemy]

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 回答
174 浏览

graphql - 我可以用 graphene-sqlalchemy 编写自定义 sql 吗?

我们可以用 graphene-sqlalchemy 编写自定义 sql 来检索数据吗?我的输出不直接存在于数据库表中,而是使用“CTE”构建的。

背景:我正在尝试在 python 中构建一个 graphql 后端。目的是这个 graphql 后端层将充当 API 层。如果我必须在不同的数据源之间切换,我要做的就是更改连接字符串,其他一切都将保持不变。

总结:我的石墨烯模型必须基于数据库视图而不是数据库表来构建。我只会查询数据而不执行任何突变。

我希望我的数据解析器需要在表上运行动态查询(基于传递的输入),然后聚合数据并返回结果。由于这种聚合基于输入动态发生,我无法预先聚合数据并存储在表中。所以我想对表执行这个动态sql。

Table-Tasks 有 3 列: id name user_id

表问题有 4 列: id task_id issue_status user_id

因此,我将根据我获得的输入在这些表上构建视图 A 和 B(比如说),然后对这些视图进行聚合。因此,为我的解析器编写自定义 sql 的能力将有很大帮助。在石墨烯-sqlalchemy 中这可能吗?

0 投票
1 回答
140 浏览

python - 石墨烯的通用创建模型突变

我正在尝试为烧瓶应用程序在石墨烯中创建某种通用的创建突变。为了创建一个突变,语法通常如下:

我想创建某种通用的创建突变类。为此,我需要动态创建 Arguments 类,然后将它们传递给 mutate。我发现我可以从 sqlalchemy 模型中获取突变所需的属性SqlAlchemyModel.__table__.columns,但是我无法弄清楚如何在给定这些列的情况下创建 Arguments 类。

0 投票
1 回答
1204 浏览

python - 如何将 id 过滤添加到我的用户解析器?

我有这样的 schema.py:

我的模型是这样的:

因此,如果我想获取所有用户,请输入以下内容:

当我得到 id 时,我得到类似的东西,"id": "VXNlcjoy"但在我的模型中,id 是一个 int。如果我确实将我的解析器更改为按前面提到的 id 过滤,sqlalchemy 会抛出一个错误,因为数据库中的 id 是整数。然后我更改我的解析器以接受 id 作为整数,并按真实 id 过滤。在该更改之后使用解析器进行过滤但会发生这种情况:

回复:

我想了一下,我认为有两种方法:
- 让 graphql 将位于数据库中的整数 id 返回给我
- 以某种方式使解析器通过 graphql 给出的字符串 id 查询用户和事件(“VXNlcjoy”)

我怎样才能做到这一点?

0 投票
2 回答
428 浏览

python - float() 参数必须是字符串或数字,而不是 'Float'

我知道以前有人问过这个问题,但没有一个问题有帮助,因此再次问..

我正在使用石墨烯并在将其传递给石墨烯之前解析一些 Elasticsearch 数据

PFB :- 我解决的功能

现在如果我这样做

它给了我10.989184,它的类型是<class 'float'>

在我的class Freelancer(graphene.ObjectType):

我已经添加了score = graphene.Float()

现在,当我尝试添加score到我的查询时,它给出了错误..否则没有问题..我感兴趣的是在 json 响应中获取该分值..我不明白是什么导致了这个错误,我是对 Python 来说相当新,所以任何建议都将不胜感激。

请随时询问其他代码或信息,因为我试图粘贴我认为相关的任何内容

0 投票
1 回答
517 浏览

sqlalchemy - 如何使用 graphene_sqlalchemy 返回不同的值?

我正在尝试从 GraphQL 查询中返回不同的值。

我从 distinctValues 查询中收到的响应是:

我在这里忽略了一些简单的事情。distinct() 打算做什么?

0 投票
0 回答
217 浏览

python - Sqlalchemy 石墨烯深度嵌套模式

我是石墨烯的新手

我正在尝试从 3 个模型接收信息:两个模型连接(用户和类)具有多对多关系,一个模型(课程)与类模型多对一连接。

我的目标是有可能在用户数据之后将有关 Class 模型的信息显示为 Class 内的列表。但我只能显示数据 beetwen 用户和类。但需要列出所有数据用户 -> 课程 -> 课程。冷了怎么办?

这里它必须看起来

我的模型是:

我的模式和查询是:

输出割草是:

主要问题是课程列表是空的,但是如果我查询课程它会显示信息,并且它不是空的。

0 投票
1 回答
332 浏览

sqlalchemy - 按查询输出列排序

我将石墨烯与 sqlalchemy 一起使用,并且我有一个包含计算字段的输出对象。该字段是根据一些输入(查询)参数计算的,或多或少看起来像这样(为了简化,让我们考虑我正在计算f(x)=ax+b其中ab都是我的 Thing表中的列):

在我的查询中,我有以下内容,我想根据函数的输出对字段进行排序f

起初我尝试使用类似但徒劳的resolve_best_points东西进行排序,因为石墨烯似乎在解析器之外添加了这个字段(即,只包含而不是)。query.order_by("f").all()query.all()abf(a, b)

有没有办法以干净的方式实现这一目标?添加一些选项Thing?或者也许在解析器中获取输出值然后排序?或者有点丑陋的东西,比如添加一个中间件来对输出进行排序resolve_best_points

什么是可能的,可能的解决方案的优点/缺点是什么?

请注意,这与以下问题有些相关:Sqlalchemy order by computed columninfo.context['x'] ,但这也有很大不同,因为在这里我不希望仅基于数据库字段进行计算(当前解决方案在涉及变量时不起作用,例如这个玩具示例)。

0 投票
0 回答
98 浏览

sqlalchemy - 在两个 SQLAlchemyObjectType 之间共享元类

我在我的 Flask 应用程序(https://github.com/graphql-python/graphene-sqlalchemy)中使用了 graphene_sqlalchemy 包,我需要使用相同的模型进行两个查询。我想知道是否有可能两种类型共享相同的模型,如下所示:

或使用继承:

但是我在使用这两种方法时遇到了错误。有什么解决方法吗?先感谢您 !

0 投票
0 回答
285 浏览

python - SQLAlchemy / Graphene - 如何对查询集进行分组或操作

我目前正在使用 graphene-sqlalchemy-filter,这是一个集成 SQLAlchemy 和 Graphene 的包。但是,我目前在使用它时遇到了一些问题。我希望能够根据来自 graphQL 的查询检索数据,并且从那里,在返回获取的数据之前,我想通过基于字段对查询集进行分组并计算每组的总和或计数来操作它。有什么办法可以做到这一点?

这是我的代码

我是新手,我不确定我应该在哪里操作数据,以及如何使用 SQLAlchemy 操作它,我尝试使用谷歌搜索但无济于事,如果有任何链接可以链接我到,那太好了,或者如果你们有解决方案,那将是完美的。谢谢!

0 投票
1 回答
94 浏览

python - 为现有的石墨烯增加价值。枚举

有没有办法为现有的添加价值graphene.Enum

我想使用 graphene- sqlalchemy sort_enum()功能并添加我自己的其他功能 -TOTAL_COUNT_ASCTOTAL_COUNT_DESC将启用按总数排序,但我可以弄清楚如何做到这一点。直接将字段添加到 graphene.Enum 不起作用:

谢谢,