Flask WTForm как ответ на вызов AJAX - PullRequest
0 голосов
/ 27 января 2019

В приложении Flask я пытаюсь «визуализировать» разные формы Flask-WT на основе выбора кнопок.Мне также нужно изменить внутренний HTML-код моего div и, следовательно, пытаться передать и innerHTML, и форму вместе, как показано ниже.Я получаю сообщение об ошибке, что формы не сериализуемы в формате JSON.

Любые предложения о том, как сделать это при вызове AJAX, а не отображать новую страницу?

Страница - это объект из класса, описанного ниже.

@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.');
    }
  });
}````


1 Ответ

0 голосов
/ 29 января 2019

Решено это в Flask путем рендеринга строки.

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

...