标签归档:relay

Graphene-Python的GraphQL框架

引言

Graphene是一个固执己见的Python库,用于快速轻松地构建GraphQL架构/类型

  • 易于使用:石墨烯可帮助您轻松使用Python中的GraphQL
  • 继电器:石墨烯具有对中继的内置支持
  • 数据不可知:石墨烯支持任何类型的数据源:SQL(Django、SQLAlChemy)、NoSQL、自定义Python对象等。我们相信,通过提供完整的API,您可以将Graphene插入数据所在的任何位置,并通过GraphQL使您的数据可用

集成

石墨烯与不同的框架有多种集成:

集成 套餐
姜戈 graphene-django
SQL炼金术 graphene-sqlalchemy
Google App Engine graphene-gae

此外,Graphene完全兼容GraphQL规范,可以与所有GraphQL客户端无缝协作,例如RelayApollogql

安装

要安装石墨烯,只需在shell中运行此命令

pip install "graphene>=2.0"

示例

以下是您可以开始使用的一个示例:

import graphene

class Query(graphene.ObjectType):
    hello = graphene.String(description='A typical hello world')

    def resolve_hello(self, info):
        return 'World'

schema = graphene.Schema(query=Query)

然后查询graphene.Schema简单到如下所示:

query = '''
    query SayHello {
      hello
    }
'''
result = schema.execute(query)

如果您想了解更多,您还可以检查以下内容examples

文档

有关其他资源的文档和链接,请访问https://docs.graphene-python.org/en/latest/

贡献

克隆此存储库后,请创建virtualenv并通过运行以下命令确保安装了依赖项:

virtualenv venv
source venv/bin/activate
pip install -e ".[test]"

编写良好的测试并保持良好的测试覆盖率对此项目非常重要。在开发过程中,使用以下各项运行新的和现有的测试:

py.test graphene/relay/tests/test_node.py # Single file
py.test graphene/relay # All tests in directory

添加-s标记是否已将断点引入代码以进行调试。添加-v(“详细”)标志,以获取更详细的测试输出。要获得更详细的输出,请使用-vv请查看pytest documentation有关更多选项和测试运行控件的信息

您还可以使用以下命令运行基准测试:

py.test graphene --benchmark-only

石墨烯支持多个版本的Python。为了确保更改不会破坏与任何这些版本的兼容性,我们使用tox为每个Python版本创建Virtualenv并使用该版本运行测试。中定义的所有Python版本运行tox.ini配置文件,只需运行:

tox

中定义的特定版本运行tox.ini文件:

tox -e py36

TOX只能使用系统上安装的任何版本的Python。当您创建Pull请求时,Travis还将运行相同的测试并报告结果,因此潜在贡献者没有必要尝试提前在自己的系统上安装每个版本的Python。我们感谢公开的问题和拉请求,以使石墨烯更稳定和有用!

建筑文档

文档是使用优秀的Sphinx和自定义主题

该文档的HTML版本是通过运行以下命令生成的:

make docs