Skip to content

graphql-python/graphene-django

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

848536e Â· May 16, 2023
May 4, 2023
Sep 17, 2016
Apr 26, 2023
May 4, 2023
May 16, 2023
Sep 18, 2016
May 22, 2019
May 5, 2023
May 6, 2019
Oct 19, 2022
May 25, 2018
Oct 19, 2022
May 3, 2023
Jan 7, 2022
Dec 30, 2020
Oct 19, 2022
May 5, 2023
May 4, 2023

Repository files navigation

Graphene Logo Graphene-Django

A Django integration for Graphene.

build pypi Anaconda-Server Badge coveralls

💬 Join the community on Slack

Documentation

Visit the documentation to get started!

Quickstart

For installing graphene, just run this command in your shell

pip install "graphene-django>=3"

Settings

INSTALLED_APPS = (
    # ...
    'django.contrib.staticfiles', # Required for GraphiQL
    'graphene_django',
)

GRAPHENE = {
    'SCHEMA': 'app.schema.schema' # Where your Graphene schema lives
}

Urls

We need to set up a GraphQL endpoint in our Django app, so we can serve the queries.

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

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

Examples

Here is a simple Django model:

from django.db import models

class UserModel(models.Model):
    name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

To create a GraphQL schema for it you simply have to write the following:

from graphene_django import DjangoObjectType
import graphene

class User(DjangoObjectType):
    class Meta:
        model = UserModel

class Query(graphene.ObjectType):
    users = graphene.List(User)

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

schema = graphene.Schema(query=Query)

Then you can query the schema:

query = '''
    query {
      users {
        name,
        lastName
      }
    }
'''
result = schema.execute(query)

To learn more check out the following examples:

GraphQL testing clients

Contributing

See CONTRIBUTING.md

Release Notes