如何使用Flask的渲染

我希望能得到这个类似问题的答案:

我有一个jQuery表单,可以将JSON数据发送到由Flask提供的特定URL:

    <div id="form">      
      <form id="send">        
        <input type="submit" value="Continue" >
      </form>
    </div>



jQuery(document).on('ready', function() {
        jQuery('form#send').bind('submit', function(event){
        event.preventDefault();

        var form = this;
        json = geojson.write(vectors.features);

        $.ajax({
            type: "POST",
            contentType: 'application/json',
            url: $SCRIPT_ROOT + "/create",
            dataType: "json",
            success: function(){},
            data: json

        });
    });
});

在Flask一侧,我有一个简单的函数来呈现一个显示JSON对象的HTML页面:

@app.route('/create', methods=['POST'])
def create():
    content = request.json
    print content
    return render_template('string.html', string = content)

我知道JSON被传递,因为我可以看到它在运行Flask服务器的控制台中打印:

问题在于模板是作为Ajax请求响应的一部分呈现的,但我希望模板呈现为新的html页面:


尝试这个,

$.ajax({
        type: "POST",
        contentType: 'application/json',
        url: $SCRIPT_ROOT + "/create",
        dataType: "json",
        success: function(){},
        data: json
        success:function(response){
            document.write(response); 
       }

    });

所以事实证明,我实际上不需要为此使用jQuery,而是我可以简单地使用带有隐藏字段的html表单提交JSON(如在此问题中暗示的):

<div id="form">

      <form id="send" method="post" action="create" onsubmit="getJSON()" enctype='application/json'>        
        <input type="submit" value="Continue" />
        <input type="hidden" name="jsonval" value=""/>
      </form>
</div>

然后使用javascript来填充表单当按钮被点击时:

function getJSON(){

            json = geojson.write(vectors.features);
            var formInfo = document.forms['send'];
            formInfo.jsonval.value = json;

        }
链接地址: http://www.djcxy.com/p/71893.html

上一篇: How to use Flask's render

下一篇: periodically rendering html without context