跳转到主要内容

Strawberry GraphQL Django扩展

项目描述

Strawberry GraphQL Django集成

CI Coverage PyPI Downloads PyPI - Python Version

文档 | Discord

此软件包提供强大的工具,可从Django模型生成GraphQL类型、查询、突变和解析器。

从python软件包仓库安装strawberry-graphql-django软件包。

pip install strawberry-graphql-django

支持的功能

  • 从模型生成GraphQL类型
  • 过滤、分页和排序
  • 基本创建、检索、更新和删除(CRUD)类型和突变
  • 基本Django认证支持,当前用户查询、登录和注销突变
  • Django同步和异步视图
  • 使用Django的权限系统扩展权限
  • Relay支持,自动生成解析器
  • 查询优化,提高性能并避免常见陷阱(例如n+1)
  • 与GraphiQL集成的调试工具栏,用于显示SQL查询等指标
  • 单元测试集成

基本用法

# 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)),
]

上面的代码生成以下模式。

"""
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!]!
}

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

strawberry_graphql_django-0.48.0.tar.gz (73.5 kB 查看哈希值)

上传时间 源代码

构建分发

strawberry_graphql_django-0.48.0-py3-none-any.whl (89.8 kB 查看散列值)

上传时间 Python 3

由以下支持