在Django中使用GraphQL

2023-04-11 00:00:00 django graphql

使用GraphQL需要安装django-graphene库,可以通过pip install django-graphene来安装。安装完成后,在Django的settings.py文件中,加入以下代码:

INSTALLED_APPS = [
    #...
    'graphene_django',
]

接着,需要创建GraphQL的schema,可以在项目的根目录下创建一个schema.py文件,内容如下:

import graphene

class Query(graphene.ObjectType):
    say_hello = graphene.String(name=graphene.String(default_value="Stranger"))

    def resolve_say_hello(self, info, name):
        return f'Hello {name}'

schema = graphene.Schema(query=Query)

其中,我们定义了一个查询操作say_hello,它会接受一个参数name,返回一个字符串“Hello name”。接着,需要在Django的urls.py文件中,加入以下代码:

from django.views.decorators.csrf import csrf_exempt
from graphene_django.views import GraphQLView

urlpatterns = [
    # ...
    path('graphql', csrf_exempt(GraphQLView.as_view(graphiql=True))),
]

这样,我们就完成了一个最简单的GraphQL示例,在浏览器中访问http://localhost:8000/graphql,即可进入GraphiQL界面,输入以下查询语句:

query {
  sayHello(name: "pidancode.com")
}

即可得到以下结果:

{
  "data": {
    "sayHello": "Hello pidancode.com"
  }
}

以上就是在Django中使用GraphQL的基本示例,可以根据实际需求对schema进行扩展。

相关文章