Recientemente, he estado usando Flask, pero solo quiero preguntar cómo LocalStorage POST navegador web a @app.route
parte de main.py
@app.route("/authenticate/post", methods=['GET', 'POST']) def posting(): posts = request.form['post'] return render_template("testing.html", post=posts) Aquí estoy creando una pequeña "aplicación para publicar y compartir" basada en la web, como Instagram, las posts var son el contenido de la publicación enviado a través del área de textarea de html, y funciona perfectamente bien. Todo lo que necesito ahora es cómo obtener los datos almacenados en LocalStorage del navegador de un usuario. Cuál es el nombre de usuario del usuario. ¿Cómo puedo recuperar el nombre de usuario del usuario que está almacenado en LocalStorage y hacer una solicitud POST a mi @app.route()
índice.html
<div class="posting"> <h5>Write Something & Post!</h5> <form method="POST" action = "/authenticate/post" autocomplete="off"> <textarea class="books" placeholder="Say something!" id="post" name="post" rows="4" cols="50" maxlength="200"></textarea> <br><br> <input id="enter" type="submit" class="books" value="Post!" onclick="getname()"> </form> </div> La función getname() de mi main.js
function getname() { let name = localStorage.getItem('username'); }Cambiaría la entrada de envío a un botón simple:
<div class="posting"> <h5>Write Something & Post!</h5> <form id="post-form" method="POST" action = "/authenticate/post" autocomplete="off"> <input type="hidden" name="username" id="username"> <textarea class="books" placeholder="Say something!" id="post" name="post" rows="4" cols="50" maxlength="200"></textarea> <br><br> <button type="button" class="books" id="enter" onclick="submitForm()">Post!</button> </form> </div>Luego maneje el envío del formulario en JS, mientras configura una entrada oculta en el formulario:
function submitForm() { let name = localStorage.getItem('username'); // set the value of the hidden input document.getElementById("username").value = name; // submit the form document.getElementById("post-form").submit(); }O
Todavía necesita la entrada oculta, pero en el evento DOM ready, puede establecer el valor de entrada:
document.addEventListener('DOMContentLoaded', function() { let name = localStorage.getItem('username'); // set the value of the hidden input document.getElementById("username").value = name; })De esta manera puede asegurarse de que su "nombre de usuario" se publicará.