石墨烯Django“必须提供查询字符串”

Gas*_*sim 5 django graphql graphene-python

我已经使用Django设置了Graphene服务器。当我通过GraphiQL(Web客户端)运行查询时,一切正常。但是,当我从其他任何地方运行时,都会出现错误:“必须提供查询字符串”。

我做了一些故障排除。GraphiQL使用来将POST数据发送到GraphQL服务器Content-Type: application/json。这是我从Chrome“网络”标签复制的GraphiQL请求的正文:

{"query":"query PartnersQuery {\n  partners{\n    name\n    url\n    logo\n  }\n}","variables":"null","operationName":"PartnersQuery"}
Run Code Online (Sandbox Code Playgroud)

当我使用将其复制到Postman时Content-Type: application/json,得到以下响应:

{
  "errors": [
    {
      "message": "Must provide query string."
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

造成此问题的原因是什么?我没有对该架构做任何疯狂的事情。只是遵循了石墨烯文档中的教程。还有什么会导致这样的问题?

glm*_*rml 2

查看示例应用程序并了解它们是如何工作的,

例如 https://github.com/mjtamlyn/graphene-tutorial 他们执行以下操作:

from django.views.decorators.csrf import csrf_exempt
from graphene_django.views import GraphQLView

url(r'^explore', GraphQLView.as_view(graphiql=True)),
url(r'^graphql', csrf_exempt(GraphQLView.as_view())),
Run Code Online (Sandbox Code Playgroud)