Flask 表單提交無需頁面重新整理


線上應用程式越來越普遍,現在已成為我們日常生活不可或缺的一部分。表單提交是線上應用程式的重要組成部分之一。在網頁上填寫表單的標準流程是點選提交按鈕,該按鈕將資訊傳遞給伺服器進行處理,然而,使用者可能會覺得這種方式緩慢且繁瑣。本文將探討如何在 Flask 中快速有效地提交表單,而無需重新載入頁面,從而改善使用者體驗。

安裝和語法

在深入探討如何在 Flask 中實現表單提交無需頁面重新整理的細節之前,讓我們先了解一下建立基本 Flask 應用程式的語法。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
   return 'Hello, World!'

if __name__ == '__main__':
   app.run(debug=True)

這將建立一個基本的 Flask 應用程式,它只有一個路由,返回“Hello, World!”作為響應。要執行該應用程式,只需執行指令碼並在 Web 瀏覽器中導航到 https://:5000/。

演算法

  • 在 HTML 中建立一個帶有適當輸入欄位和提交按鈕的表單。

  • 使用 jQuery 處理表單提交事件並阻止預設的表單提交行為。

  • 使用 jQuery 向 Flask 伺服器傳送 AJAX 請求,並附帶表單資料。

  • 使用 Flask 處理表單資料並返回響應。

  • 使用 jQuery 處理響應並相應地更新頁面。

示例

首先建立一個新的 Flask 專案,然後啟動終端為專案建立一個新目錄。導航到該目錄幷包含一個名為 app.py 的新 Python 檔案。

mkdir flask-form
cd flask-form
touch app.py

app.py

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def home():
   return render_template('index.html')


@app.route('/submit', methods=['POST'])
def submit():
   name = request.form['name']
   email = request.form['email']
   message = request.form['message']

   return 'Form submitted!'

if __name__ == '__main__':
   app.run(debug=True)

index.html

<!DOCTYPE html>
<html>
<head>
   <title>Flask Form Submission without Page Reload</title>
   <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
   <script>
      $(document).ready(function() {
         $('form').submit(function(event) {
            event.preventDefault();
            $.ajax({
               type: 'POST',
               url: '/submit',
               data: $('form').serialize(),
               success: function() {
                  $('#name').val('');
                  $('#email').val('');
                  $('#message').val('');
                  alert('Form submitted!');
               }
            });
         });
      });
   </script>
</head>
<body>
   <form>
      <label for="name">Name:</label>
      <input type="text" id="name" name="name">
      <br>
      <label for="email">Email:</label>
      <input type="email" id="email" name="email">
      <br>
      <label for="message">Message:</label>
      <textarea id="message" name="message"></textarea>
      <br>
      <button type="submit">Submit</button>
   </form>
</body>
</html>

輸出

應用場景

建立使用者體驗:Flask 使開發人員能夠構建更像原生桌面或移動應用程式的 Web 應用程式,其中使用者輸入可以即時處理,而不會出現任何延遲或滯後,這可以透過啟用表單提交而無需頁面重新載入來實現,從而減少伺服器負載。

傳統的表單提交需要頁面重新載入,這可能會佔用伺服器資源並影響使用者體驗。透過使用 Flask 提交表單而無需重新載入頁面,可以減少客戶端和伺服器之間需要傳輸的資料量,從而構建更輕量級且高效的應用程式。

Flask 的表單提交功能使即時更新變得更加容易,開發人員可以構建能夠即時更改的應用程式,而無需頁面重新整理。這對於使用者希望儘快檢視最新資訊的應用程式(例如聊天室或社交媒體資訊流)非常有用。

結論

Flask 提交表單無需重新載入頁面的能力可以極大地增強 Web 應用程式的使用者體驗。透過使開發人員能夠構建流暢且無縫的使用者體驗、減少伺服器負載並允許即時更改,此功能在各種不同行業和用例中具有廣泛的應用。由於其簡單性和多功能性,Flask 對於任何希望開發高質量、現代 Web 應用程式的人來說都是一個絕佳的選擇。

更新於: 2023年7月18日

3K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.