带'的Flask graphql查询&';返回';语法错误图形ql';

带'的Flask graphql查询&';返回';语法错误图形ql';,flask,graphql,graphene-python,flask-graphql,Flask,Graphql,Graphene Python,Flask Graphql,我有一个非常简单的flask graphql应用程序,所有东西都可以在我的方面工作,我可以从我的浏览器调用它,它返回给定的数据 但是如果我发送一个包含“&”的字符串,我总是会收到消息“语法错误图ql(1:22)未终止字符串\n\n1:(…)\n^\n” 浏览器将给定字符串拆分为参数 有什么解决办法吗 #!/usr/bin/env python3 import flask import flask_graphql import graphene app = flask.Flask('graphq

我有一个非常简单的flask graphql应用程序,所有东西都可以在我的方面工作,我可以从我的浏览器调用它,它返回给定的数据

但是如果我发送一个包含“&”的字符串,我总是会收到消息“语法错误图ql(1:22)未终止字符串\n\n1:(…)\n^\n”

浏览器将给定字符串拆分为参数

有什么解决办法吗

#!/usr/bin/env python3
import flask
import flask_graphql
import graphene

app = flask.Flask('graphql-test')

class Query(graphene.ObjectType):
    helloz = graphene.String(text=graphene.String())

    def resolve_helloz(self, info, text):
        return text

@app.route('/')
def index():
    # Create graphql view with the authentication passed as context
    return flask_graphql.GraphQLView.as_view(
            'index', 
            schema=graphene.Schema(query=Query), 
            graphiql=False
        )()

if __name__ == '__main__':
    # Run application
    app.run(host='127.0.0.1', port='8001')

如果将查询作为查询参数发送,则需要转义任何具有特殊含义的字符,如
&
&
用于分隔单个参数,因此在不转义它的情况下,
查询
参数最终被解释为
{helloz(text:“test
”--这是无效的GraphQL语法。您应该改为发送:

127.0.0.1:8001?query={helloz(text:"test%26test")}

如果将查询作为查询参数发送,则需要转义任何具有特殊含义的字符,如
&
&
用于分隔单个参数,因此在不转义的情况下,
查询
参数最终被解释为
{helloz(文本):test
--这是无效的GraphQL语法。您应该改为发送:

127.0.0.1:8001?query={helloz(text:"test%26test")}

您是否将查询作为URL参数发送?是的,我调用了一个URL,如
127.0.0.1:8001/?query={helloz(text:“test&test”)}
并收到一个错误您是否将查询作为URL参数发送?是的,我调用了一个URL,如
127.0.0.1:8001/?query={helloz(text:“test&test”)}
并获得一个错误我对数据没有影响。我只是在服务器站点上。服务器很好。如果要将查询作为URL参数发送,客户端需要正确设置查询格式。您也可以在POST请求的正文中发送查询,这是推荐的方法。我对数据没有影响。我我只是在服务器站点上。服务器很好。如果要将查询作为URL参数发送,客户端需要正确设置查询的格式。您也可以在POST请求的正文中发送查询,这是推荐的方法。