引言
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客户端无缝协作,例如Relay,Apollo和gql
安装
要安装石墨烯,只需在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:
- 基本架构:Starwars example
- 中继方案:Starwars Relay example
文档
有关其他资源的文档和链接,请访问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