亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Flask 在單頁應用程序中提交表單而無需重新加載

使用 Flask 在單頁應用程序中提交表單而無需重新加載

aluckdog 2021-10-07 11:01:27
我正在用 python 開發一個單頁 Flask 應用程序。要更改頁面的內容,我只需調用一個 javascript 函數來隱藏一個 div 并顯示另一個。其中一個 div 包含一個表單,用戶可以在其中上傳文件,我通過 python 腳本運行該文件,該腳本解析文件中的數據。問題是在執行代碼后,Flask 似乎想讓我重定向到一個新頁面。我更愿意返回一個觸發器來簡單地運行我的 javascript 函數。HTML 表單:<form class='upload-form' id='upload-form' action="/upload" method='POST' enctype="multipart/form-data" onsubmit="return show_and_hide('load', 'upload')">                            <input type="file" name='file' value="Browse...">                            <input type="submit" value='Upload'>                        </form>Javascript 函數:var callFunction;    function show_and_hide(div_in, div_out){        var shower = document.getElementById(div_in);        var hider = document.getElementById(div_out);        var hider_items = hider.children;        var i;        for(i = 0; i < hider_items.length; i++){            hider_items[i].style.animation = "hide 1s";        }        callFunction = setTimeout(change_div, 1000, div_in, div_out);        var shower_items = shower.children;        var n;        for(n = 0; n < shower_items.length; n++){            shower_items[n].style.animation = "show 1s";        }        return true;    }和燒瓶應用程序(我實際上沒有讓它返回???):@app.route('/upload', methods=['POST', 'GET'])def upload_file():        f = request.files['file']        new_file_name = str(uuid.uuid1()) + '.zip'        f.save(os.path.join('uploads/', new_file_name))        path = 'uploads/' + new_file_name        return ???我很感激任何建議!謝謝!
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

我最終使用的解決方案有點舊,但效果很好。我通過向表單添加一個按鈕將表單重定向到一個不可見的 iframe:


<input type="button" id="double-analysis-button" value='Correlate' style='width:250px' onclick="redirect('double-analysis-form', 'double-analysis-iframe', 'graph-loading', 'graph-display')">

                    <iframe class="uploader" id="double-analysis-iframe" name="double-analysis-iframe" src="" frameborder="0"></iframe>

和 javascript 函數:


function redirect(elemid, tgt, sh1, sh2){

        document.getElementById(elemid).target = tgt;

        document.getElementById(elemid).submit();


        var callFunction;

        callFunction = show_and_hide(sh1, sh2);

    }

show_and_hide 函數是我用來淡出一個 div 和另一個 div 的函數。


查看完整回答
反對 回復 2021-10-07
  • 2 回答
  • 0 關注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號