Graphene-Django ist eine Open-Source-Bibliothek, die eine nahtlose Integration zwischen Django, einem High-Level-Python-Web-Framework, und Graphene, einer Bibliothek zum Erstellen von GraphQL-APIs, bietet. Die Bibliothek ermöglicht es Entwicklern, GraphQL-APIs in Django schnell und effizient zu erstellen und dabei ein hohes Leistungsniveau aufrechtzuerhalten.
Führen Sie den folgenden Befehl aus, um Graphene-Django zu installieren:
pip install graphene-django
Fügen Sie nach der Installation „graphene_django“ zur INSTALLED_APPS
-Liste Ihres Django-Projekts hinzu und definieren Sie das GraphQL-Schema in den Einstellungen Ihres Projekts:
INSTALLED_APPS = [
# ...
'graphene_django' ,
]
GRAPHENE = {
'SCHEMA' : 'myapp.schema.schema'
}
Um Graphene-Django zu verwenden, erstellen Sie eine schema.py
Datei in Ihrem Django-App-Verzeichnis und definieren Sie Ihre GraphQL-Typen und -Abfragen:
import graphene
from graphene_django import DjangoObjectType
from . models import MyModel
class MyModelType ( DjangoObjectType ):
class Meta :
model = MyModel
class Query ( graphene . ObjectType ):
mymodels = graphene . List ( MyModelType )
def resolve_mymodels ( self , info , ** kwargs ):
return MyModel . objects . all ()
schema = graphene . Schema ( query = Query )
Stellen Sie dann die GraphQL-API in der urls.py
Datei Ihres Django-Projekts bereit:
from django . urls import path
from graphene_django . views import GraphQLView
from . import schema
urlpatterns = [
# ...
path ( 'graphql/' , GraphQLView . as_view ( graphiql = True )), # Given that schema path is defined in GRAPHENE['SCHEMA'] in your settings.py
]
Graphene-Django bietet Unterstützung für das Testen von GraphQL-APIs mit dem Testclient von Django. Um Tests zu erstellen, erstellen Sie eine Datei tests.py
in Ihrem Django-App-Verzeichnis und schreiben Sie Ihre Testfälle:
from django . test import TestCase
from graphene_django . utils . testing import GraphQLTestCase
from . import schema
class MyModelAPITestCase ( GraphQLTestCase ):
GRAPHENE_SCHEMA = schema . schema
def test_query_all_mymodels ( self ):
response = self . query (
'''
query {
mymodels {
id
name
}
}
'''
)
self . assertResponseNoErrors ( response )
self . assertEqual ( len ( response . data [ 'mymodels' ]), MyModel . objects . count ())
Beiträge zu Graphene-Django sind immer willkommen! Sehen Sie sich zunächst den Issue-Tracker und die Beitragsrichtlinien des Repositorys an.
Graphene-Django wird unter der MIT-Lizenz veröffentlicht.
Wenn Sie auf Probleme stoßen oder Fragen zu Graphene-Django haben, können Sie gerne ein Problem im offiziellen GitHub-Repository einreichen. Sie können auch um Hilfe bitten und Ihre Erfahrungen mit der Graphene-Django-Community auf Discord teilen