跳转到主要内容

Graphene Django集成

项目描述

Graphene Logo Graphene-Django

build pypi Anaconda-Server Badge coveralls

Graphene-Django是一个开源库,它提供了Django(一个高级Python Web框架)和Graphene(一个用于构建GraphQL API的库)之间的无缝集成。该库允许开发者快速有效地在Django中创建GraphQL API,同时保持高性能。

功能

  • 与Django模型的无缝集成
  • 自动生成GraphQL模式
  • 与Django的认证和权限系统集成
  • 轻松查询和筛选数据
  • 支持Django的分页系统
  • 与Django表单和验证系统兼容
  • 丰富的文档和社区支持

安装

要安装Graphene-Django,请运行以下命令

pip install graphene-django

配置

安装后,将'graphene_django'添加到Django项目的INSTALLED_APPS列表中,并在项目的设置中定义GraphQL模式

INSTALLED_APPS = [
    # ...
    'graphene_django',
]

GRAPHENE = {
    'SCHEMA': 'myapp.schema.schema'
}

使用方法

要使用Graphene-Django,在Django应用目录中创建一个schema.py文件,并定义您的GraphQL类型和查询

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)

然后,在Django项目的urls.py文件中公开GraphQL API

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提供支持使用Django测试客户端测试GraphQL API。要创建测试,在Django应用目录中创建一个tests.py文件并编写测试用例

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())

贡献

Graphene-Django欢迎贡献!要开始,请查看仓库的问题跟踪器贡献指南

许可证

Graphene-Django在MIT许可证下发布。

资源

教程和示例

相关项目

  • Graphene - 用于在Python中构建GraphQL API的库
  • Graphene-SQLAlchemy - Graphene和SQLAlchemy之间的集成,SQLAlchemy是Python的对象关系映射(ORM)
  • Graphene-File-Upload - 提供Upload标量的包,用于处理Graphene中的文件上传
  • Graphene-Subscriptions - 一个用于向基于Graphene的GraphQL API添加实时订阅的包

支持

如果您在使用Graphene-Django时遇到任何问题或疑问,请随时在官方GitHub仓库上提交问题。您还可以在💬 Discord上请求帮助并与Graphene-Django社区分享您的经验

发行说明

项目详情


发行历史 发行通知 | RSS源

下载文件

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

源分布

graphene-django-3.2.2.tar.gz (87.6 kB 查看散列)

上传时间

构建分布

graphene_django-3.2.2-py2.py3-none-any.whl (114.2 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面