为什么烧瓶会忽略片段标识符?

时间:2018-03-12 11:06:17

标签: python flask

我有一些代码从url获取一些输入,我在这个输入上运行我的函数,这是我的代码的一部分:

@app.route('/input', methods=['POST', 'GET']) def index():
    if request.method == "GET":
        user_input = request.args.get('text')
        return myfunc(user_input)

当我输入例如此输入时:

http://127.0.0.1:5000/input?text=some text

我将some text作为用户输入。

当用户输入包含片段标识符的某个输入时,会出现

问题...然后将忽略该标识符后面的文本

例如来自此输入:

http://127.0.0.1:5000/input?text=some text#blah blah blah

我刚收到some text而不是some text#blah blah blah

的整个用户请求

任何想法如何获得全文?

2 个答案:

答案 0 :(得分:4)

你无法通过"#" in to querystring value。您必须将#替换为其UTF-8值(%23)。请参阅下面的示例

http://127.0.0.1:5000/input?text=some text%23blah blah blah

它对我有用。

答案 1 :(得分:1)

您不能在#之后将发送值用于服务器端,因为它们是特定于浏览器的,并且在发送之前会被裁剪。

您可以在前端

上将查询字符串更改为http://127.0.0.1:5000/input?text=some text&fragment=blah blah blah