Envío de formulario Flask sin recarga de página

Hay muchos módulos o marcos que permiten construir su página web usando python como bottle, django, matraz, etc. Pero los más populares son Flask y Django. Django es fácil de usar en comparación con Flask, pero Flask le brinda la versatilidad para programar.

Problema:

Si publicamos la solicitud, se volverá a cargar toda la página. Por lo tanto, este artículo gira en torno a cómo enviar los datos del formulario al backend del matraz sin recargar la página. Para enviar el formulario sin recargar la página, usamos jquery y ajax. Entonces, antes de usar el matraz, tenemos que instalar eso

ubuntu

pip3 install flask

Cree un nuevo directorio para su proyecto. Dentro de eso, cree un nuevo archivo y asígnele el nombre app.py

app.py

Python3

from flask import Flask,render_template,request
 
app = Flask(__name__)
 
 
@app.route("/",methods=["POST","GET"])
def home():
    if request.method == "POST":
        todo = request.form.get("todo")
        print(todo)
    return render_template('home.html')
 
 
if __name__ == '__main__':
    app.run(debug=True)
    

Luego cree un nuevo directorio y asígnele el nombre de plantillas .

Dentro de eso, cree un nuevo archivo y asígnele el nombre home.html

inicio.html

HTML

<!DOCTYPE html>
<html>
<head>
    <title>GFG</title>
</head>
<body>
  <form method="post" id="todo-form">
        <input type="text" name="todo" id="todo">
        <button type="submit">submit</button>
    </form>
 
        <!--Jquery Cdn -->
  <script src="https://code.jquery.com/jquery-3.5.1.js"
          integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc="
          crossorigin="anonymous"></script>
 
  <script type="text/javascript">
    $(document).on('submit','#todo-form',function(e)
                   {
      console.log('hello');
      e.preventDefault();
      $.ajax({
        type:'POST',
        url:'/',
        data:{
          todo:$("#todo").val()
        },
        success:function()
        {
          alert('saved');
        }
      })
    });
  </script>
 
</body>
</html>
  • e.preventDefault() :- Esta función no recarga la página
  • tipo: solicitud GET o POST
  • url: url que hemos especificado en nuestra aplicación de matraz
  • data : Datos del formulario que queremos pasar
  • Éxito: función(): – Esta función se ejecuta después de enviar con éxito los valores y cuando no se produce ningún error al enviar los datos.

PRODUCCIÓN :-

En el cmd o terminal, imprimirá el valor que hemos enviado mediante el formulario.

Publicación traducida automáticamente

Artículo escrito por vivekpisal12345 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *