graphene-django的简单示例

1、所需要的安装包:

  graphene 2.1.8 Django 3.0.8  graphene-django 2.11.0

2、创建一个model

from django.db import models

# Create your models here.

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)
    gender = models.CharField(max_length=100)

3、app下建立一个schema文件

import graphene
from .models import User
from graphene import relay
from graphene_django import DjangoObjectType, DjangoConnectionField

class UserType(DjangoObjectType):

    class Meta:
        model = User
        interfaces = (relay.Node,)


class UserInput(graphene.InputObjectType):
    name = graphene.String(required=True)
    gender = graphene.String(required=True)


class CreateUser(graphene.Mutation):
    # a输入
    class Arguments:
        user_data = UserInput(required=True)

    # 响应
    ok = graphene.Boolean()
    user = graphene.Field(UserType)

    def mutate(self, info, user_data):
        user = User.objects.create(name=user_data['name'], gender=user_data['gender'])
        ok = True
        return CreateUser(user=user, ok=ok)


class Query(graphene.ObjectType):
    users = graphene.List(UserType)
    all_users = DjangoConnectionField(UserType)

    def resolve_users(self, info):
        return User.objects.all()

4、项目目录新建schema文件

import graphene
import MyGraph.schema


class Query(MyGraph.schema.Query):
    pass


class Mutations(graphene.ObjectType):
    create_user = MyGraph.schema.CreateUser.Field()


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

5、配置url

from django.contrib import admin
from django.urls import path
from graphene_django.views import GraphQLView

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r"graphql", GraphQLView.as_view(graphiql=True))
]

6、settings修改

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'graphene_django',
    'MyGraph'
]

  

GRAPHENE = {
    'SCHEMA': 'MyFirstGraph.schema.schema'
}

7、项目目录大致如图:

 

 8、运行django,访问http://127.0.0.1:8000/graphql

9、添加一条数据

 

 10、查询一条数据

 

 

 

 

  

posted @ 2020-07-08 00:48  青花メ  阅读(446)  评论(0编辑  收藏  举报