Graphene Mongoengine集成
项目描述
Graphene-Mongo
为Mongoengine和Graphene的集成。
安装
要安装graphene-mongo,只需在您的shell中运行此命令
pip install graphene-mongo
示例
这里是一个简单的Mongoengine模型作为models.py
from mongoengine import Document
from mongoengine.fields import StringField
class User(Document):
meta = {'collection': 'user'}
first_name = StringField(required=True)
last_name = StringField(required=True)
为了创建一个GraphQL模式和同步执行器;为了它,你只需要编写以下内容
import graphene
from graphene_mongo import MongoengineObjectType
from .models import User as UserModel
class User(MongoengineObjectType):
class Meta:
model = UserModel
class Query(graphene.ObjectType):
users = graphene.List(User)
def resolve_users(self, info):
return list(UserModel.objects.all())
schema = graphene.Schema(query=Query)
然后你可以简单地查询该模式
query = '''
query {
users {
firstName,
lastName
}
}
'''
result = await schema.execute(query)
为了创建一个GraphQL模式和异步执行器;为了它,你只需要编写以下内容
import graphene
from graphene_mongo import AsyncMongoengineObjectType
from graphene_mongo.utils import sync_to_async
from concurrent.futures import ThreadPoolExecutor
from .models import User as UserModel
class User(AsyncMongoengineObjectType):
class Meta:
model = UserModel
class Query(graphene.ObjectType):
users = graphene.List(User)
async def resolve_users(self, info):
return await sync_to_async(list, thread_sensitive=False,
executor=ThreadPoolExecutor())(UserModel.objects.all())
schema = graphene.Schema(query=Query)
然后你可以简单地查询该模式
query = '''
query {
users {
firstName,
lastName
}
}
'''
result = await schema.execute_async(query)
了解更多信息,请查看以下示例
贡献
在克隆此存储库后,请运行以下命令以确保已安装依赖项
pip install -r requirements.txt
开发完成后,可以通过运行以下命令评估完整的测试套件
make test
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
graphene_mongo-0.4.4.tar.gz (78.2 kB 查看哈希值)
构建分布
graphene_mongo-0.4.4-py3-none-any.whl (89.9 kB 查看哈希值)