Graphene Django集成
项目描述
Graphene-Django
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许可证下发布。
资源
- 官方GitHub仓库
- Graphene文档
- Django文档
- GraphQL规范
- GraphiQL - 一个用于探索GraphQL API的浏览器内IDE
- Graphene-Django社区 - 加入社区,讨论相关问题并分享想法
教程和示例
相关项目
- 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社区分享您的经验
发行说明
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
graphene-django-3.2.2.tar.gz (87.6 kB 查看散列)
构建分布
graphene_django-3.2.2-py2.py3-none-any.whl (114.2 kB 查看散列)