首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在单个GraphQL变异中返回已删除对象的数组(石墨烯-django)

在单个GraphQL变异中返回已删除对象的数组(石墨烯-django)

在GraphQL中,一个变异(Mutation)是用于修改数据的操作。石墨烯(Graphene)是一个用于构建GraphQL API的Python库,而Django是一个流行的Python Web框架。因此,如果我们想要在单个GraphQL变异中返回已删除对象的数组,可以使用石墨烯与Django的结合。

首先,我们需要定义一个变异类型(Mutation Type)来表示删除操作。在该变异类型中,我们可以指定删除的对象类型以及相关参数。

示例代码如下:

代码语言:txt
复制
from graphene import ObjectType, String, List, Field
from graphene_django import DjangoObjectType, DjangoListField
from graphene_django.filter import DjangoFilterConnectionField
from .models import YourModel

class YourModelType(DjangoObjectType):
    class Meta:
        model = YourModel
        fields = ("id", "name")  # 根据实际需求指定需要的字段

class DeleteObjectsMutation(ObjectType):
    deleted_objects = List(YourModelType)

    class Arguments:
        object_ids = List(String)

    def mutate(root, info, object_ids):
        deleted_objects = YourModel.objects.filter(id__in=object_ids)
        deleted_objects.delete()

        return DeleteObjectsMutation(deleted_objects=deleted_objects)

class Mutation(ObjectType):
    delete_objects = DeleteObjectsMutation.Field()

class Query(ObjectType):
    your_objects = DjangoFilterConnectionField(YourModelType)

schema = graphene.Schema(query=Query, mutation=Mutation)

在上述代码中,我们首先定义了一个YourModelType来表示需要删除的对象类型,它继承自DjangoObjectType。然后,我们定义了一个DeleteObjectsMutation来表示删除操作的变异类型。其中,deleted_objects是一个包含被删除对象的列表。

DeleteObjectsMutation中,我们定义了一个Arguments类,其中包含了一个名为object_ids的参数,它用于接收需要删除的对象的ID。在mutate方法中,我们首先通过传入的object_ids参数获取要删除的对象列表,然后进行删除操作,并将删除的对象列表赋值给deleted_objects。最后,我们返回一个DeleteObjectsMutation实例,其中包含了被删除的对象列表。

接下来,我们需要定义一个根级的Mutation类型,并将DeleteObjectsMutation添加到其中。同时,我们也定义了一个根级的Query类型,用于查询对象列表。

使用上述代码,我们可以通过执行如下GraphQL查询来删除对象并返回已删除对象的数组:

代码语言:txt
复制
mutation {
  deleteObjects(objectIds: ["1", "2", "3"]) {
    deletedObjects {
      id
      name
    }
  }
}

上述查询中,我们通过deleteObjects变异来删除具有ID为1、2和3的对象,并返回已删除对象的ID和名称。

这是一个简单的例子,你可以根据实际需求进行修改和扩展。关于石墨烯和Django的更多信息,请参考腾讯云文档中的相关链接。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一天两登Nature,还都是一作!95后天才少年再次引全球热议,被称“海啸级”后浪

5月6日,在最新一期的《Nature》上,96年出生的“天才少年”曹原与其博导Pablo Jarillo-Herrero背靠背连发两篇Nature文章,介绍了在魔角石墨烯中取得的系列新进展。...能让Nature两篇连发的研究本身究竟有何魅力,在石墨烯领域得到了怎样的研究结果,和文摘菌一起来看看。...据我这几年的观察,基础学科很久没有出现过单个工作产生如此大影响力的事件了。之前的nature人物多是成名的大师,在一个充分竞争的领域耕耘很多年,但这次这个工作实在属于平地惊雷,出乎所有人意料。...石墨烯的"魔角"也登上了当时《自然》杂志的十大人物特刊的封面图。 曹原的“石墨烯的驾驭者”这一称号,也由此得来。 再来聊聊“石墨烯”这种神奇的材料。...根据知乎匿名用户的回答,曹原的第一篇论文主要回答了“两个双层石墨烯在扭转之后会产生什么样新奇的物态”的问题。

47930

95后“石墨烯驾驭者”王者归来!一天内喜提两篇Nature!

5月7日,被誉为“天才少年”、“石墨烯驾驭者”的95后博士曹原分别以第一作者兼共同通讯作者、以及共同第一作者的身份,在Nature上连发2篇论文。...他们采用了一种全新的魔角石墨烯体系:基于小角度扭曲的双层-双层石墨烯(TBBG)。...2018年3月,《自然》在同一期发表了有关石墨烯导电性的两篇重要论文。“这两篇文章的第一作者都是曹原,这也是十分罕见的。”曾长淦说。...“之前,有科学家预言,在魔角层叠后石墨烯可能会有奇异现象,但超导还是有点出乎意料。”曾长淦说。当石墨烯以魔角层叠后首先会形成一个新的量子态,即强关联绝缘态。...曾长淦说,曹原的这一能力在中国科大本科期间就已展露。他平时喜欢天文摄影,经常自己组装仪器,在微信朋友圈可以看到他拍摄的星云照片。曹原还喜欢在计算机上画漫画,也有同龄人的一些相同爱好。 ?

71420
  • 用 GraphQL 查询你的 Django 应用

    但是也许某一天,我们需要一个评论的精简列表的 API,当前返回内容中,除了 content 以外的其他字段都变成多余了,那么后端开发需要重新定一个 MinimalCommentSerializer 来满足新的需求...在 REST 基础中,我们增加了 fields 参数,并在 DRF Serializer 里做了特殊处理(你可以点击查看源码),实现的具体效果: # 查询 comment,并限制结果返回字段 /api/...在 REST 中,为了这个需求我们可能会额外为 /users 增加一个参数 with_comments # 查询 users,并限制结果返回字段 /api/users?...基于 REST ,单个请求只能针对单个对象进行描述。需要等待需求沉淀,由后端主动封装,迭代节奏会更慢。 什么是 GraphQL 客户端?...comments = DjangoListObjectField(CommentListType, description="Query all comments") 支持复杂过滤查询 可以在列表对象中增加

    2K60

    【译】十张图看懂3D打印未来

    另一种开始在3D印刷中使用的材料是玻璃。这种玻璃花瓶是美国麻省理工学院研究人员众多产品中的一个。...机器先以高达1165摄氏度加热玻璃,使之熔化,随后逐渐降低温度,以除去气泡,减少应力,并防止玻璃在打印中失去其形状。 5、石墨烯3D打印 ?...(图片:伦敦帝国学院/华威大学) 石墨烯做为一种神奇的新材料赢得了声誉,它具有高强度、低重量和导电等特性。...该材料有望在开发新的电子产品中扮演重要角色,因此人们进行了大量研究,如何3D打印石墨烯结构的产品。...重复该过程,直到打印完成并删除多余的材料。 迪斯尼研究所表示,打印机可以在一个单一对象中混合两种类型的材料,由此可制造结合嵌入式电路的打印织物。 10、耳目一新:3D打印“变形金刚” ?

    768150

    11.6 VR 扫描:超级电容器制造商Skeleton融资3.2亿元;《精灵宝可梦GO》营收10亿美元

    据了解,今年9月,Skeleton宣布与德国卡尔斯鲁厄理工学院制作出了突破性的石墨烯超级电池,其能够在15秒内充满电,比普通电池快1000倍左右。...且石墨烯超级电池在经过几十万次的充放电过程后,依然没有明显的老化现象。 VRPinea独家点评:目前技术还不成熟,但电池的发展已经很多年没有重大的突破了。...这款组件的像素尺寸为7µm,VGA(640X480)分辨率,能够测量20厘米至5米范围内的对象。...在一场551人组成的实验中,该方案的识别准确率最高可达95%,每人不到5分钟即可完成识别。即使算法训练时间从5分钟降低至1分钟,准确率也能高达75%。...04 《精灵宝可梦GO》营收10亿美元创新高 近日,据Sensor Tower Intelligence的最新统计数据,《精灵宝可梦GO》2020 年的前十月总营收已超过往年记录,今年游戏营收将创新高。

    35920

    API接口架构REST vs GraphQL

    然后一个 REST API 就完成了 GET/api/articles,它以 JSON 数组的形式返回所需的数据,如下例所示: // GET /articles [ { "id": 1, "title"...这些冗余数据在频繁调用和发送大量数据的时候会造成服务器的资源浪费。 嵌套数据 有些时候我们通过一个接口要返回更多的数据的时候,我们就会使用嵌套数据。 例如,我们可能需要一个带有嵌套评论的文章。...这可以包括特定字段,甚至在嵌套对象中。我们之前看到必须在模式上定义操作。但是,在这些操作中,我们可以指定我们希望查询返回到模式限制的哪些字段。...请注意,在 GraphQL 响应中接收到的数据将与请求它的查询具有相同的结构。...使用 GraphQL,可以从模式中删除不推荐使用的字段,而不会影响现有查询。这为应用程序提供了对新功能的持续访问,并鼓励更清洁、更可维护的代码。

    1.6K30

    GraphQL 的入门指南

    现在编写的第一个 Type,在 schema.graphql 文件中用以下内容替换已存在的 Query 类型: type User { id: ID! name: String!...但是,在每一行的结尾的 !呢? 感叹号表示字段不可为空,这意味着每个字段必须在每个查询中返回一些数据。 User 中唯一可以为空的字段是 age。...在GraphQL中,有三个主要概念: query (查询) — 从服务器获取数据的方式。 mutation (更改) — 修改服务器上的数据并获取更新数据的方法(创建、更新、删除)。...首先,在文件 schema.graphql 编写一个名为Query 的新类型: type Query { users: [User!]! } 这很简单:用户查询将返回给我们一个或多个用户的数组。...在 users 函数中,我们只是返回已存在的 users 数组,这个数组存放的是所有的用户。

    2K30

    使用 GraphQL 和 Ballerina 操作多个数据源

    但在使用 GraphQL 时,你可以使用查询语法定义所需信息的结构,然后通过单个 API 请求就可以获取所需的信息。...在创建所需的记录之前,需要分析一下根据指定 ISBN 从 Google Books API 获取的的 JSON 响应消息的格式。它返回一个 JSON 对象,其中包含了一个“items”的数组。...使用记录类型作为对象有局限性,因此,在这个示例中,我们使用服务类型来表示“Book”对象。 在这个服务中,“BookDetails”是一个 final 的只读字段,在初始化后不能被赋值。...allBooks 和 bookByName 是通过 GraphQL 查询获取书籍数据的资源函数,因此,它们返回“Book”数组。要将新书添加到数据库中,可以调用“addBook”远程方法。...它将书籍的信息作为输入参数,并返回一个 int 值,这个值表示已插入的书籍的索引,如果发生错误就返回 -1。

    2.4K20

    GraphQL+Koa2实现服务端API结合Apollo+Vue

    然而 REST api 表 现得过于僵化,无法跟上访问它们的客户的快速变化的需求 RESTful API 不足 扩展性(多个终端需要返回不同的字段),单个 RESTful 接口返回数据越来越 臃肿。...前端对于真正用到的字段是没有直观映像的,仅仅通过 url 地址,无法预测也无 法回忆返回的字段数目和字段是否有效,接口返回 50 个字段,但却只用 5 个字段,造 成字段冗余,扩展性差,单个 RESTful...尤其是在业务多变的场景中,很难在保证工程质量的同时快速满足业务需求 GraphQL 的优点 吸收了 RESTful API 的特性 所见即所得 各种不同的前端框架和平台可以指定自己需要的字段。...Union:联合类型用于描述某个字段能够支持的所有返回类型以及具体请求真正的返回类型 Enum:枚举用于表示可枚举数据结构的类型 InputObject:输入对象 List:列表 列表是其他类型的封装...将它与vue-apollo和graphql一起安装: npm install vue-apollo graphql apollo-boost --save 在src/main.js中引入apollo-boost

    5.2K42

    安息吧 REST API,GraphQL 长存

    在 REST API 中,没有客户端请求语言。客户端无法控制服务器返回的数据。没有任何语言可以这样做。更确切地说,可用于客户端的语言非常有限。...本质上,我们可以添加新的字段,而不需要删除旧的字段,因为我们有一个图,并且我们可以通过添加更多的节点来灵活地扩展图。因此,我们可以在图上留下旧的 API,并引入新的 API,而不会将其标记为新版本。...一个设计良好的 RESTful API 还会返回给我们该人物的星球 ID 和参演的所有电影 ID 的数组。...假设我们有单个 GraphQL 端点通过 HTTP 暴露在 /graphql。 由于我们希望在单次往返中请求我们所需的数据,所以我们需要一种表达我们对服务器端完整数据需求的方式。...GraphQL 查询字段被设计为独立的功能,并且使用数据库中的数据解析这些字段可能会导致对已解析字段产生新的数据库请求。

    2.7K30

    编写graphql服务

    在开发graphql服务前你可能需要知道graphql提供了哪些能力,以及graphql定义了哪些规范,这些都可以在这里学习。...graphql服务核心概念 类型(type):type是最基础的因为graphql服务返回数据一定是定义好的类型的单个或者数组。...类型就像面对对象编程里的class,返回数据是class的实例 字段(filed):filed组成type,一个type由多个filed构成。filed就像面对对象编程里的class的一个属性。...每个字段都有返回类型,返回类型是定义的type 查询(query):通过query来暴露graphql服务所提供的所有读接口,query就是type它由filed组成 变化(mutation):通过mutation...storyType topstories获取500个热门的story,该字段返回类型是[storyType] 可以看到获取数据的逻辑都在Resolve函数里,由于篇幅有限model 里封装的如何去数据库获取数据的代码忽略了

    1K80

    编写graphql服务

    在开发graphql服务前你可能需要知道graphql提供了哪些能力,以及graphql定义了哪些规范,这些都可以在这里学习。...graphql服务核心概念 类型(type):type是最基础的因为graphql服务返回数据一定是定义好的类型的单个或者数组。...类型就像面对对象编程里的class,返回数据是class的实例 字段(filed):filed组成type,一个type由多个filed构成。filed就像面对对象编程里的class的一个属性。...每个字段都有返回类型,返回类型是定义的type 查询(query):通过query来暴露graphql服务所提供的所有读接口,query就是type它由filed组成 变化(mutation):通过mutation...storyType topstories获取500个热门的story,该字段返回类型是[storyType] 可以看到获取数据的逻辑都在Resolve函数里,由于篇幅有限model 里封装的如何去数据库获取数据的代码忽略了

    43810

    EOS与ETH体系结构比较

    cycles EOS设计的目标之一是**使得两个账户(合约)能够在单个区块内来回交换消 息(交易),而不必在每个消息之间等待 消息分成了cycle来顺序处理。...根据交易hash从数据库中读取交易,它返回对应的交易、交易所在区块的区块hash、交易所在区块的区块号、交易在区块中的索引。...五:共识机制 以太坊使用工作证明POW模式(很快将转换为POW/POS混合模式),而EOS将会使用采取股份授权证明(DPOS)机制的石墨烯技术,eos这种选择对商业可扩展性具有显著价值。...以太坊的POW共识机制,每次的硬分叉也能引起产生多个竞争链的风险,如同以太坊经典ETC在DAO事故之后分裂出来。但为了处理一个已毁坏的应用,一个扰乱了整个以太坊网络分裂性的硬分叉又是必须的。...首先,EOS依赖已经在压力测试中展现出每秒1万至10万笔交易处理能力的石墨烯技术,虽然目前最近测试版本的只有几千TPS。其次EOS将使用并发技术来扩展网络,或将达到每秒数百万次的交易处理能力。

    1.4K80

    编写graphql服务

    在开发graphql服务前你可能需要知道graphql提供了哪些能力,以及graphql定义了哪些规范,这些都可以在这里学习。...graphql服务核心概念 类型(type):type是最基础的因为graphql服务返回数据一定是定义好的类型的单个或者数组。...类型就像面对对象编程里的class,返回数据是class的实例 字段(filed):filed组成type,一个type由多个filed构成。filed就像面对对象编程里的class的一个属性。...每个字段都有返回类型,返回类型是定义的type 查询(query):通过query来暴露graphql服务所提供的所有读接口,query就是type它由filed组成 变化(mutation):通过mutation...storyType topstories获取500个热门的story,该字段返回类型是[storyType] 可以看到获取数据的逻辑都在Resolve函数里,由于篇幅有限model 里封装的如何去数据库获取数据的代码忽略了

    68410

    2020前端技术面试必备Vue:(一)基础快速学习篇

    Vue 样式绑定 class 使用 1.通过数组方式添加样式 通过数组方式添加样式 【‘样式名’】 --> 这里的样式名是提前在CSS中定义好的, 使用 :class绑定使用 数组,在原始数组上做一些操作,例如:增加,删除.. // 变异方法包括: push() pop() shift() unshift() splice() sort() reverse...() 非变异方法 //所谓非变异方法:不改变原始数组,生成新的数组 // 非变异方法包括: filter() concat() slice() .......在这种情况下,可以创建一个计算属性,来返回过滤或排序后的数组。... 按键修饰符 由于Vue 废除了 keyCode 事件, 在开发中,想要获取用户输入的按键,可以自己通过全局 config.keyCodes 对象自定义按键修饰符别名: 具体设置为 https

    1.9K20
    领券