Salut, je suis nouveau à python flask, j'ai ce qui semble être un simple problème d'une erreur 400 mauvaise demande, qui devrait être dû à avoir mal nommé les variables dans la forme lorsque vous essayez de les transmettre à une fonction en flacon de python. J'ai fait quelques recherches mais je ne peux toujours pas comprendre où je vais mal avec ce code, toute aide serait vraiment appréciée. Voici le code pour le formulaire html400 Bad Request flacon python
<html>
<body>
<h1>Add a Munroe to your list</h1>
<form action = "{{ url_for('addmunro') }}" method="POST"
enctype = "multipart/form-data">
Name<br>
<input type="text" name="mnName"/><br>
Description<br>
<input type="text" name="mnDesc"/><br>
Region<br>
<input type="text" name="mnRegion"/><br>
Height<br>
<input type="text" name="mnHeight"/><br>
Walk date<br>
<input type="text" name="mnDate"/><br>
Walk image<br>
<input type="text" name="mnImage"/><br>
<br>
<br>
<input type="submit" name="add-munro.html" value = "ADD MUNRO"/>
</form>
</body>
</html>
Et voici le code pour l'application flacon de python
from flask import Flask, render_template, url_for, redirect, json, request
app = Flask(__name__)
@app.route('/add-munro.html', methods=['GET'])
def addmunro():
#Create an empty list
mnList={}
#Create a munro dictionary
munro = {'name':request.form['mnName'],
'desc':request.form['mnDesc'],
'region':request.form['mnRegion'],
'height':request.form['mnHeight'],
'date':request.form['mnDate'],
'image':request.form['mnImage']}
#the munro dictionary is added to mnList
#mnList.append(munro)
return render_template('add-munro.html')
if __name__ == "__main__":
app.run(host = '0.0.0.0', debug = True)
Merci pour l'explication, je dois aussi télécharger une image dans le cadre du dictionnaire, je sais que je dois changer le type de fichier dans le HTML, mais comment puis-je enregistrer dans le dictionnaire dans l'application flacon? – costep
Vous ne pouvez pas enregistrer le fichier dans le dictionnaire. Mais vous pouvez certainement enregistrer le fichier dans un répertoire, puis enregistrez le chemin dans le dictionnaire. Utilisez 'image = request.files [" mnImage "]' pour obtenir le fichier dans le contrôleur, puis enregistrez-le dans un répertoire en utilisant 'image.save()'. Enfin, vous pouvez retourner le chemin de l'image dans le dictionnaire. – arsho