我从asyncio + GraphQL开始,但是即使最简单的示例也无法工作:
from aiohttp import web
from aiohttp_graphql import GraphQLView
from graphql.execution.executors.asyncio import AsyncioExecutor
from graphql import GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString
async def resolve_hello(root, info):
return 'World!'
Schema = GraphQLSchema(
query=GraphQLObjectType(
name='RootQueryType',
fields={
'hello': GraphQLField(
type=GraphQLString,
resolver=resolve_hello),
},
))
app = web.Application()
GraphQLView.attach(
app,
route_path='/graphql',
schema=Schema,
graphiql=True,
executor=AsyncioExecutor)
if __name__ == '__main__':
web.run_app(app)
安慰:
$ venv/bin/python example.py
======== Running on http://0.0.0.0:8080 ========
(Press CTRL+C to quit)
An error occurred while resolving field RootQueryType.hello
Traceback (most recent call last):
File "/.../venv/lib/python3.7/site-packages/graphql/execution/executor.py", line 447, in resolve_or_error
return executor.execute(resolve_fn, source, info, **args)
File "/.../venv/lib/python3.7/site-packages/graphql/execution/executors/asyncio.py", line 69, in execute
result = fn(*args, **kwargs)
TypeError: 'NoneType' object is not callable
Traceback (most recent call last):
File "/.../venv/lib/python3.7/site-packages/graphql/execution/executor.py", line 447, in resolve_or_error
return executor.execute(resolve_fn, source, info, **args)
File "/.../venv/lib/python3.7/site-packages/graphql/execution/executors/asyncio.py", line 69, in execute
result = fn(*args, **kwargs)
graphql.error.located_error.GraphQLLocatedError: 'NoneType' object is not callable
/ graphql graphiql界面中的错误消息:
{
"errors": [
{
"message": "wait_until_finished() missing 1 required positional argument: 'self'"
}
]
}
最佳答案
问题出在执行程序设置中:
GraphQLView.attach(
...
executor=AsyncioExecutor)
应该
GraphQLView.attach(
...
executor=AsyncioExecutor())
关于python - aiohttp-graphql AsyncioExecutor GraphQLLocatedError:'NoneType'对象不可调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54169116/