mirror of
https://github.com/graphql-python/graphene-django.git
synced 2024-11-22 01:27:01 +03:00
Build powerful, efficient, and flexible GraphQL APIs with seamless Django integration.
a000d58514
Currently the relay cookbook's readme has a link to the plain tutorial page. The plain cookbook readme also instructs the user to change directory into the directory for the relay example. This change fixes both issues. Also changed the title for the relay example to specify that it uses relay. |
||
---|---|---|
.github | ||
bin | ||
docs | ||
examples | ||
graphene_django | ||
.coveragerc | ||
.gitignore | ||
.pre-commit-config.yaml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
Makefile | ||
MANIFEST.in | ||
README.md | ||
README.rst | ||
setup.cfg | ||
setup.py | ||
tox.ini |
Graphene-Django
A Django integration for Graphene.
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:
- Schema with Filtering: Cookbook example
- Relay Schema: Starwars Relay example
GraphQL testing clients
Contributing
See CONTRIBUTING.md