Build powerful, efficient, and flexible GraphQL APIs with seamless Django integration.
Go to file
2021-08-03 18:33:49 +08:00
.github Tox & actions updates (#1143) 2021-03-24 09:32:37 +03:00
bin Isolated Graphene Django in a new package 2016-09-17 16:31:17 -07:00
docs Add typed filters (v3) (#1148) 2021-03-31 10:31:45 -07:00
examples Bump django from 3.1.6 to 3.1.8 in /examples/cookbook-plain (#1157) 2021-04-10 19:28:41 -07:00
graphene_django Add missing auto fields (#1212) 2021-06-11 13:41:02 -07:00
.coveragerc Improved python syntax and sorts (pep8). Improved Readme 2016-09-17 17:09:56 -07:00
.gitignore Added tox.ini 2019-05-22 01:49:52 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-05-06 13:28:02 +01:00
CONTRIBUTING.md Introduce Black formatting, additional tests 2019-05-02 17:46:35 +01:00
LICENSE add license to repo 2018-05-25 01:28:51 -04:00
Makefile Update flake8 (#688) 2019-06-24 18:55:44 +01:00
MANIFEST.in WIP: Merge master into v3 (#1086) 2020-12-30 15:37:57 -08:00
README.rst WIP: Merge master into v3 (#1086) 2020-12-30 15:37:57 -08:00
setup.cfg Fix project setup (#1087) 2021-01-02 09:46:00 -08:00
setup.py Tox & actions updates (#1143) 2021-03-24 09:32:37 +03:00
tox.ini Tox & actions updates (#1143) 2021-03-24 09:32:37 +03:00

Please read
`UPGRADE-v2.0.md <https://github.com/graphql-python/graphene/blob/master/UPGRADE-v2.0.md>`__
to learn how to upgrade to Graphene ``2.0``.

--------------

|Graphene Logo| Graphene-Django |Build Status| |PyPI version| |Coverage Status|
===============================================================================

A `Django <https://www.djangoproject.com/>`__ integration for
`Graphene <http://graphene-python.org/>`__.


Documentation
-------------

`Visit the documentation to get started! <https://docs.graphene-python.org/projects/django/en/latest/>`__

Quickstart
----------

For installing graphene, just run this command in your shell

.. code:: bash

    pip install "graphene-django>=3"

Settings
~~~~~~~~

.. code:: python

    INSTALLED_APPS = (
        # ...
        '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.

.. code:: python

    from django.conf.urls import url
    from graphene_django.views import GraphQLView

    urlpatterns = [
        # ...
        url(r'^graphql$', GraphQLView.as_view(graphiql=True)),
    ]

Examples
--------

Here is a simple Django model:

.. code:: python

    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:

.. code:: python

    from graphene_django import DjangoObjectType
    import graphene

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

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

        @graphene.resolve_only_args
        def resolve_users(self):
            return UserModel.objects.all()

    schema = graphene.Schema(query=Query)

Then you can simply query the schema:

.. code:: python

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

To learn more check out the following `examples <examples/>`__:

-  **Schema with Filtering**: `Cookbook example <examples/cookbook>`__
-  **Relay Schema**: `Starwars Relay example <examples/starwars>`__

Contributing
------------

See `CONTRIBUTING.md <CONTRIBUTING.md>`__.

.. |Graphene Logo| image:: http://graphene-python.org/favicon.png
.. |Build Status| image:: https://github.com/graphql-python/graphene-django/workflows/Tests/badge.svg
   :target: https://github.com/graphql-python/graphene-django/actions
.. |PyPI version| image:: https://badge.fury.io/py/graphene-django.svg
   :target: https://badge.fury.io/py/graphene-django
.. |Coverage Status| image:: https://coveralls.io/repos/graphql-python/graphene-django/badge.svg?branch=master&service=github
   :target: https://coveralls.io/github/graphql-python/graphene-django?branch=master