Strawberry GraphQL Django extension
Project description
Strawberry GraphQL Django integration
This package provides powerful tools to generate GraphQL types, queries, mutations and resolvers from Django models.
Installing strawberry-graphql-django
package from the python package repository.
pip install strawberry-graphql-django
Supported Features
- GraphQL type generation from models
- Filtering, pagination and ordering
- Basic create, retrieve, update and delete (CRUD) types and mutations
- Basic Django auth support, current user query, login and logout mutations
- Django sync and async views
- Permission extension using django's permissioning system
- Relay support with automatic resolvers generation
- Query optimization to improve performance and avoid common pitfalls (e.g n+1)
- Debug Toolbar integration with graphiql to display metrics like SQL queries
- Unit test integration
Basic Usage
# models.py
from django.db import models
class Fruit(models.Model):
"""A tasty treat"""
name = models.CharField(
max_length=20,
)
color = models.ForeignKey(
"Color",
on_delete=models.CASCADE,
related_name="fruits",
blank=True,
null=True,
)
class Color(models.Model):
name = models.CharField(
max_length=20,
help_text="field description",
)
# types.py
import strawberry_django
from strawberry import auto
from . import models
@strawberry_django.type(models.Fruit)
class Fruit:
id: auto
name: auto
color: 'Color'
@strawberry_django.type(models.Color)
class Color:
id: auto
name: auto
fruits: list[Fruit]
# schema.py
import strawberry
import strawberry_django
from strawberry_django.optimizer import DjangoOptimizerExtension
from .types import Fruit
@strawberry.type
class Query:
fruits: list[Fruit] = strawberry_django.field()
schema = strawberry.Schema(
query=Query,
extensions=[
DjangoOptimizerExtension, # not required, but highly recommended
],
)
# urls.py
from django.urls import include, path
from strawberry.django.views import AsyncGraphQLView
from .schema import schema
urlpatterns = [
path('graphql', AsyncGraphQLView.as_view(schema=schema)),
]
Code above generates following schema.
"""
A tasty treat
"""
type Fruit {
id: ID!
name: String!
color: Color
}
type Color {
id: ID!
"""
field description
"""
name: String!
fruits: [Fruit!]
}
type Query {
fruits: [Fruit!]!
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for strawberry_graphql_django-0.35.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4c28b8a9b89a74b1a78f88898f3140d758ac2b6ef93d7e2e97e5f4480eea7ef |
|
MD5 | 2eb51b47ac73b598b2094adfaf36c77c |
|
BLAKE2b-256 | 9163b54efabc16338f10f72e787a8bcffec678e407b1283c0a74849a7507d51f |
Close
Hashes for strawberry_graphql_django-0.35.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09da5d62c33eacb0e25cd7f5ab179904fd44fb792cb80815a6c99344ffc39bb9 |
|
MD5 | 09bd8f21f0d05e913e6c42c4680b1f78 |
|
BLAKE2b-256 | 487c06220e48c88f191b611ffdc2dc3d03616e8629f1c22051e26d11bbbbf5a7 |