首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Flask重定向到"GET /? HTTP/1.1“

为什么Flask重定向到"GET /? HTTP/1.1“
EN

Stack Overflow用户
提问于 2018-12-28 00:26:03
回答 1查看 2K关注 0票数 1

我正在编写一个简单的Flask应用程序,我想在其中从前端向Flask应用程序发送一些数据,让它执行一些操作,并将新数据返回到前端进行显示。我以前做过类似的应用程序,通过返回POST response对象,而不是render_template(),我能够简单地返回数据,并在前端对其执行我想做的事情。然而,这一次我遇到了一些问题。

我从前端的Jquery发出一个POST请求。一切似乎都很正常,我可以看到在浏览器控制台中返回的数据,除了页面重新加载后才能显示新数据。它会重新加载到http://xxx.x.x.x:5000/?

我可以在Flask控制台中看到对/?的get请求。我想知道它为什么这样做,以及我如何才能让它停止。

(我发现这很难研究,因为大多数搜索引擎都会默默地忽略查询中的任何问号。)

Flask应用:

代码语言:javascript
运行
复制
import json
from flask import Flask, Response, render_template, request
from src.simple_lookup import analogy_lookup

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/')
def hello_world():
    return render_template('index.html', results=['a', 'b'])

@app.route('/get_words_simple', methods=['POST'])
def get_words_simple():
    print('request.form:', request.form.keys)
    data = analogy_lookup(request.form['keyword'], request.form['base'], request.form['goal'])
    resp = Response(json.dumps(data), status=200, mimetype='application/json')
    print('data:', data)
    print('resp:', resp)
    return resp

if __name__ == "__main__":
    app.run()

Jquery:

代码语言:javascript
运行
复制
  $.post('get_words_simple?', data, function(json, status) {
    console.log('response:', json);
    if (json.hasOwnProperty('error')) {
      $('.results').append('<p>' + json.error);
      return;
    }

    var words = json.words;
    $.each(words, function(i, text) {
      var p = $("<p>");
      p.append(text);
      $('.results').append(p);
    });
  });

烧瓶控制台:

代码语言:javascript
运行
复制
127.0.0.1 - - [27/Dec/2018 11:12:21] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [27/Dec/2018 11:12:21] "GET /static/js/main.js HTTP/1.1" 200 -
request.form: <bound method MultiDict.keys of ImmutableMultiDict([('keyword', ''), ('base', ''), ('goal', '')])>
127.0.0.1 - - [27/Dec/2018 11:12:23] "GET /? HTTP/1.1" 200 -
127.0.0.1 - - [27/Dec/2018 11:12:23] "GET /static/js/main.js HTTP/1.1" 200 -
data: ['obtuvo', 'takata', 'stadshypotek', 'kriwet', 'shafiee', 'martorell', 'collum', '29,400', 'muteesa', 'patzek']
resp: <Response 111 bytes [200 OK]>
127.0.0.1 - - [27/Dec/2018 11:12:23] "POST /get_words_simple? HTTP/1.1" 200 -
EN

回答 1

Stack Overflow用户

发布于 2018-12-28 01:37:34

问题是,如果type="submit"按钮在表单组中,Bootstrap会覆盖它的功能。所以我的Jquery做的一切都是正确的,但是关于按钮的html的某些东西把一切都搞砸了,并试图以不同的方式发出post请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53948012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档