Voici mon code actuellement (en omettant les bibliothèques et les autres parties inutiles):Comment Recharger la page Web basée sur Flask après formulaire de soumission
app = Flask(__name__)
class SearchForm(Form):
inputString = TextAreaField('', [validators.DataRequired()])
@app.route('/')
def index():
return render_template('Website.html')
@app.route('/results', methods=['POST'])
def results():
...
form = SearchForm(request.form)
if request.method == 'POST' and form.validate():
inputString = request.form['inputString']
...
return render_template('Website.html', cLinkName=cLinkName, \
lLinkName=lLinkName)
if __name__ == '__main__':
app.run(debug=True, use_reloader=True)
Et voici la page web (ne montrant que la forme et les variables qui sont modifiées lorsque le SearchForm
est soumis):
<form method=post action="{{url_for('results')}}" style="text-align: center;">
<input type="text" id="inputString" name="inputString"/>
<input type=submit value='Search' name='search_btn'>
</form>
<table align="center" border="1">
<tr>
<td style='text-align: center;'>{{ cLinkName }}</td>
<td style='text-align: center;'>{{ lLinkName }}</td>
</tr>
</table>
Tout d'abord, je l'ai regardé Flask: redirect to same page after form submission et je crois que j'ai essayé de mettre en œuvre ce qui a été accepté comme la bonne réponse, mais cela n'a pas fonctionné pour moi depuis que je suis également en train de présenter variables à la mise à jour page Web plutôt que simplement actualiser la page Web.
Je veux être en mesure de soumettre SearchForm
de la page Web et puis mettre à jour ma page Web avec le produit cLinkName
et lLinkName
de soumettre mon SearchForm
plus d'une fois. Malheureusement, mon code me permet seulement de soumettre le SearchForm
puis de mettre à jour ma page Web avec le cLinkName
et le lLinkName
produits en soumettant mes SearchForm
exactement une fois. Et lorsque j'essaie de recharger la page Web, je reçois une fenêtre contextuelle «Continuer la soumission du formulaire». Donc, ma question est comment puis-je obtenir ma page Web pour me permettre de soumettre le SearchForm
et se mettre à jour plus d'une fois?
Après d'autres recherches, Clear valid form after it is submitted, je peux maintenant demander des requêtes GET et veiller à ce que je peux recharger la page localhost/results
et soumettre une autre forme, mais il ne fonctionne pas sous la forme par l'algorithme à nouveau.
Qu'est-ce qui est rendu pour votre action de formulaire sur la page? –
La première fois, il imprime des instructions dans le journal de la console qui se trouvent dans l'algorithme et met à jour la page Web une fois la requête POST terminée. À tout autre moment, il ignore l'algorithme et indique immédiatement qu'une demande POST a été effectuée et ne met pas à jour la page Web. –
Ce n'est pas clair pour moi. Essayez-vous de voir tous les 'cLinkName' et' lLinkName' recherchés dans la table? – arsho