将SQLAlchemy表转换为Graphene ObjectType。

graphene-objecttype-from-sqlalchemy-table的Python项目详细描述


sqlalchemy表中的graphene objecttype

https://img.shields.io/pypi/v/graphene_objecttype_from_sqlalchemy_table.svghttps://travis-ci.org/Joko013/graphene-objecttype-from-sqlalchemy-table.svg?branch=master

SQLAlchemyTable转换为GrapheneObjectType。在

  • 免费软件:麻省理工学院许可证

特点

此库的目的是在无法使用完整的SQLAlchemy ORM时,允许基于数据库表定义创建轻量级GraphQL模式。它将Table列转换为对应的Graphene,并创建相应的Graphene ObjectType,用作模式字段。在

请注意,如果您的应用程序使用SQLAlchemy ORM,graphene-sqlalchemy仍然提供了更多的特性,您可以从中受益。在

安装

在shell运行中:

pip install graphene-objecttype-from-sqlalchemy-table

示例用法

让我们首先定义一个模拟数据库表。在

^{pr2}$

然后使用引用SQLAlchemy表的元类创建Graphene对象类型。在

fromgraphene_objecttype_from_sqlalchemy_tableimportObjectTypeFromTableclassTestTable(ObjectTypeFromTable):classMeta:table=t

最后使用新的对象类型定义GraphQL查询结构。在

fromgrapheneimportField,ObjectType,SchemaclassQuery(ObjectType):test_table=Field(TestTable)# custom resolver for the table (probably a database query in a real world application)# returns a dictionary or an object with attributes corresponding to column namesdefresolve_test_table(root,info):return{'foo':'Hello world','bar':42}schema=Schema(query=Query)# confirm that the query resolves correctlyschema.execute('query { testTable { foo, bar } }')# {'data': {'testTable': {'foo': 'Hello world', 'bar': 42}}}

可以通过将特定列列列为excluded_columns从结果对象中排除,或者只选择具有only_selected_columns属性的列的子集。在

classTestTable(ObjectTypeFromTable):classMeta:table=texcluded_columns=('foo',)# only_selected_columns = ('bar', )

学分

此包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。在

历史

0.1.2(2020-09-02)

  • 没有更改,Travis CI加密问题导致pypi版本不正确,pypi不允许删除和重新发布同一版本,因此需要一个新版本来解决此问题。在

0.1.1(2020-08-31)

  • 修复多列重用一个SQLAlchemy枚举或将枚举类型用作字段参数时出现的重复枚举类型错误。在

0.1.0(2020-08-17)

  • PyPI的第一个版本。在

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

推荐PyPI第三方库


热门话题
java通过Spring MVC web应用程序向客户端发送文本文件   java是否可以在运行时动态实例化DAO类?   调用VB。来自Java的net函数   java在Android中通过单击打开特定文件夹   java如何使用maven pom。xml标识非标准项目结构中的testng测试用例?   java为什么FOP在大文件上崩溃?   Architecture python+flask和spring boot+java   java Kafka工具根本没有启动Ubuntu 19.10   如何使用Eclipse运行Java USB API for Windows   java如何在Eclipse中查看J2EE预览服务器/容器的日志/控制台?   网页抓取是否可以使用Java crawler crawler4j暂停和恢复抓取?   java当我第二次按下按钮时,应用程序停止工作   带有偏移量和限制的java SQLite分页问题   java如何在OSX mavericks中将端口80转发到8080   java从泛型方法调用非泛型方法   java My代码未按预期工作。十进制输出不是它应该的样子   节点。java中的js加密(jasypt)和nodejs中的解密   java乘法表不工作数组索引超出范围   java将JDBC与Firebirdsql连接起来