首頁  >  問答  >  主體

python - flask框架中在jinja2模板中呼叫視圖函數但是不想重定向怎麼辦


我想呼叫視圖函數delete,但是不想重定向到delete這個頁面可以實現嗎?

ringa_leeringa_lee2711 天前666

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-05-18 10:59:04

    按照我的理解我覺得你是想刪除的時候不刷新頁面,如果是這樣那就要用一下ajax了,用ajax把id傳給相關的處理視圖,然後在視圖裡面獲取傳過來的id把它刪掉,程式碼:

    function deleteUser(userid) {
    
        var post_data = {
            'userid': userid,
        }
    
        $.ajax({
            type: "POST",
            url: "/deleteuser",
            data: JSON.stringify(post_data, null, '\t'),
            contentType: 'application/json;charset=UTF-8',
            success: function(result) {
                // 传完数据之后做某些处理
                ...
            }
        });
    }

    在flask裡面的視圖:

    @main.route('/deleteuser', methods=['POST'])
    def delete_user():
        if request.method == 'POST':
            user_id = request.json['userid']
            user = User.query.get_or_404(user_id)
            db.session.delete(user)
            db.session.commit()
            return 'OK'// 这里你返回你要在页面上更新的数据,用来在上面的ajax里面的success部分做处理

    這樣可以實現不刷新頁面刪除指定的使用者

    回覆
    0
  • 某草草

    某草草2017-05-18 10:59:04

    如果不想跳轉,可以考慮使用 AJAX 方式存取刪除動作的 URL,刪除完成之後,再刷新目前頁面。


    你使用的跳轉的方式,一般刪除完了之後要跳回到當前頁面,以便顯示最新的結果

    回覆
    0
  • 取消回覆