将GraphQL与Python整合:Django和Graphene的结合
import graphene
from graphene_django import DjangoObjectType
from myapp.models import MyModel
# 定义Django模型的GraphQL类型
class MyModelType(DjangoObjectType):
class Meta:
model = MyModel
# 创建GraphQL查询类型
class Query(graphene.ObjectType):
my_model = graphene.Field(MyModelType, id=graphene.Int())
# 解析器方法,根据ID获取单个MyModel对象
def resolve_my_model(self, info, id):
return MyModel.objects.get(pk=id)
# 创建GraphQL mutation类型
class Mutation(graphene.ObjectType):
# 在这里定义创建或更新MyModel对象的mutation
pass
# 创建GraphQL Schema
schema = graphene.Schema(query=Query, mutation=Mutation)
# 在Django的urls.py中添加GraphQL的URL路径
from graphene_django.views import GraphQLView
urlpatterns = [
# ...其他URL配置...
path('graphql/', GraphQLView.as_view(graphiql=True)),
]
这段代码展示了如何在Django应用中集成GraphQL。首先定义了一个GraphQL类型与Django模型MyModel
对应,然后创建了一个GraphQL查询类型Query
,其中包含了一个解析器方法来获取单个MyModel
对象。最后,创建了一个GraphQL Schema,并将其添加到Django的URL配置中,使得我们可以通过GraphiQL界面进行GraphQL查询。
评论已关闭