【问题标题】:Flask WTForm as response to a AJAX callFlask WTForm 作为对 AJAX 调用的响应
【发布时间】:2019-01-27 06:38:48
【问题描述】:

在 Flask 应用程序中,我试图根据各种按钮选择“渲染”不同的 Flask-WTForms。我还需要更改 div 的内部 HTML,因此尝试将 innerHTML 和表单一起传递,如下所示。我收到一个错误,表单不是 JSON 可序列化的。

关于如何在 AJAX 调用中执行此操作而不是呈现新页面的任何建议?

Page 是下面描述的类中的一个对象。

@app.route('/_select_forms',methods=['GET','POST'])
def _creation_frame():
    content_requested=request.get_json()
    Page=Page_contribute_frame(content_requested)
    return jsonify(html=Page.html_string, form=Page.form)
class Page:
    def __init__(self, **kwargs):
        self.html_string = None
        self.form = None
<div id=contribute-frame></div>
function contribute_frame(e){
  var request_json = frame_identifier();
  $.ajax({
    type:'POST',
    url:'/_contribute_frame',
    contentType: "application/json",
    data:request_json,
    success : function(data){
      $('#contribute-frame').html(data.html);
    },
    error : function (){
      $('#contribute-frame').html('Browser did not get a response. Check connection.');
    }
  });
}````


【问题讨论】:

    标签: javascript python ajax flask flask-wtforms


    【解决方案1】:

    通过渲染字符串在 Flask 中解决了这个问题。

    return render_template_string(Page.html_string, form=Page.form)

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 2016-10-04
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2017-10-07
      相关资源
      最近更新 更多