AXIOS POST请求+ render_template FLASK

时间:2018-03-20 15:54:06

标签: javascript flask axios

我有一个包含大量输入框(数字,复选框等)的页面,我需要在POST请求之前准备数据。所以我有一堆方法可以调整这些输入的名称,将它们很好地捆绑在一个名为data的对象中。出于我的目的,将提交按钮放在上面的表单中不起作用,因为POST请求是使用默认名称完成的。因为这个原因所有上面的输入都包含在div中,然后我有一个提交按钮和onClick我正在做一个axios POST请求:

axios({
            method: 'post',
            url: '/smart-beta/',
            data
        });

在Flask结束时我有这个:

    elif request.method == "POST":

      sbe_args = json.loads(request.data)
      sb = SbeGenerator(sbe_args)
      sb.run()  # TODO: depending on how long this takes, may add a loading animation to the page
      eg = ExcelGenerator(sb)
      eg.create_excel()

      beta = sb.beta
      sharpe = sb.sharpe
      annualised_return = sb.ann_mean
      annualised_vol = sb.ann_vol
      time_series = sb.port_json
      stocks = sb.last_stocks_json
      print("Time series: " + str(time_series))
      print("stocks: " + str(stocks))

    # TODO: Do the redirect here (getting 302 status on the POST request if redirect is here, becasue
    # TODO: axios catches it in then
      print("Rendering template")
      return render_template('smart_beta/calculation.html')

我在POST请求中获得200,但它从不呈现我的其他页面。它只挂在当前页面上。这是因为axios的承诺永远不会被解决?当我做.then(function(response) {console.log(response);});< - 它仍然挂起。我需要使用render_template的原因是因为我需要将time_series之类的东西传递到该页面。

编辑:当我在网页上的开发工具中导航到POST请求的响应时,我可以看到它是我需要的页面。

0 个答案:

没有答案