加入 Discord 社区
我们正在寻找贡献者!请查看当前问题以了解如何提供帮助❤️
Graphene 是一个固执己见的 Python 库,用于快速轻松地构建 GraphQL 模式/类型。
石墨烯与不同框架有多种集成:
一体化 | 包裹 |
---|---|
SQL炼金术 | 石墨烯炼金术 |
蒙戈 | 石墨烯-蒙戈 |
阿波罗联盟 | 石墨烯联盟 |
姜戈 | 石墨烯-Django |
此外,Graphene 与 GraphQL 规范完全兼容,可与所有 GraphQL 客户端无缝协作,例如 Relay、Apollo 和 gql。
要安装graphene
,只需在 shell 中运行此命令
pip install " graphene>=3.1 "
这是一个供您入门的示例:
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 )
如果您想了解更多信息,还可以查看以下示例:
文档和其他资源链接可在 https://docs.graphene-python.org/en/latest/ 获取
克隆此存储库后,创建一个 virtualenv 并确保通过运行以下命令安装依赖项:
virtualenv venv
source venv/bin/activate
pip install -e " .[test] "
编写良好的测试和保持良好的测试覆盖率对于该项目非常重要。在开发时,使用以下命令运行新的和现有的测试:
pytest graphene/relay/tests/test_node.py # Single file
pytest graphene/relay # All tests in directory
如果您已在代码中引入断点以进行调试,请添加-s
标志。添加-v
(“详细”)标志以获得更详细的测试输出。要获得更详细的输出,请使用-vv
。查看 pytest 文档以获取更多选项和测试运行控件。
定期确保您的pre-commit
挂钩是最新的并已启用:
pre-commit install
您还可以使用以下命令运行基准测试:
pytest graphene --benchmark-only
Graphene 支持多个版本的 Python。为了确保更改不会破坏与任何版本的兼容性,我们使用tox
为每个 Python 版本创建 virtualenv 并使用该版本运行测试。要针对tox.ini
配置文件中定义的所有 Python 版本运行,只需运行:
tox
如果您希望针对tox.ini
文件中定义的特定版本运行:
tox -e py39
Tox 只能使用系统上安装的任何版本的 Python。当您创建拉取请求时,GitHub Actions 管道也将运行相同的测试并报告结果,因此潜在贡献者无需尝试提前在自己的系统上安装每个版本的 Python。我们感谢开放问题和拉取请求,以使石墨烯更加稳定和有用!
该文档是使用优秀的 Sphinx 和自定义主题生成的。
通过运行以下命令可生成 HTML 版本的文档:
make docs