python的graphql框架

graphene的Python项目详细描述


我们正在寻找贡献者!请检查 ROADMAP 看看你能帮上什么忙。


Graphene LogoGrapheneBuild StatusPyPI versionCoverage Status

简介

Graphene是 快速轻松地构建graphql模式/类型。

  • 易于使用:graphene帮助您在python中使用graphql 努力。
  • 中继:石墨烯内置中继支持。
  • 数据不可知:石墨烯支持任何类型的数据源:sql (django、sqlalchemy)、nosql、自定义python对象等,我们相信 通过提供一个完整的api,你可以在任何地方插入石墨烯。 您的数据通过graphql存活并使您的数据可用。

集成

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

integrationPackage
Djangographene-django
SQLAlchemygraphene-sqlalchemy
Google App Enginegraphene-gae
PeeweeIn progress (Tracking Issue)

此外,graphene与graphql规范完全兼容,可以工作 与所有graphql客户端无缝连接,例如 RelayApollogql

安装

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

pip install "graphene>=2.0"

2.0升级指南

请阅读UPGRADE-v2.0.md来学习如何 升级。

示例

下面是一个让您开始的示例:

classQuery(graphene.ObjectType):hello=graphene.String(description='A typical hello world')defresolve_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(“verbose”)标志以获取更详细的测试 输出。对于更详细的输出,请使用-vv。查看 pytest documentation了解更多 选项和测试运行控件。

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

py.test graphene --benchmark-only

graphene支持多种版本的python。以确保改变 不要破坏与这些版本的兼容性,我们使用tox来 为每个python版本创建virtualenvs并用它运行测试 版本。对^{tt6}中定义的所有python版本运行$ 配置文件,只需运行:

tox

如果希望针对^{tt6}中定义的特定版本运行$ 文件:

tox -e py36

tox只能使用安装在 系统。创建拉取请求时,travis还将运行 同样的测试并报告结果,因此不需要潜在的 贡献者尝试在他们的 提前拥有系统。我们很感激你们的邀请 使石墨烯更加稳定和有用!

建筑文档

文档是使用 Sphinx和自定义主题。

运行以下命令生成文档的HTML版本:

make docs

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在SpringMVC中如何在控制器内使用DAO?   java用Eratosthenes筛寻找素数(最初:有没有更好的方法来准备这个数组?)   Java密码检查器布尔返回值工作不正常   java如何解码百分位编码字节[]   java我正在尝试一个基于servlet的应用程序来工作   java JScrollPane破坏内容   基于bean id的java SpEL   java JavaFx TalbleView向下/向上滚动问题   apache如何使用服务器bean映射将java对象作为post参数发送   使用Avro序列化在Spark中工作时出现java Kafka foreachRDD错误