Post -Anfrage funktioniert von Postboten, aber nicht in FlaskPython

Python-Programme
Anonymous
 Post -Anfrage funktioniert von Postboten, aber nicht in Flask

Post by Anonymous »

Angenommen, die API -URL ist https://34.35.36.37:8000/api
Eine Postanforderung aus der Postman -App gesendet, die erfolgreich ist:


Die angehängte Datei (Taste = user_image) ist eine .jpg -Datei < /p>
auf der Serverseite (https://34.35.36.37:8000/api):

Code: Select all

@app.route('/api', methods=['POST'])
def api():
print("check1")
user_image = request.files['user_image']
print("check2")
return "some text"
Aber wenn ich eine Postanforderung mit einer Flask -App versuche, in der ein Formular angezeigt wird, um ein Bild hochzuladen, das dann an die API -URL gesendet wird, gibt es einen Fehler < Br />

Code: Select all

api_url = "https://34.35.36.37:8000/api"
content_type = 'application/json'
headers = {'Content-Type': content_type}

class UploadForm(FlaskForm):
user_image = FileField('Upload an image',validators=[FileAllowed(['jpg', 'png', 'jpeg'], u'Image only!'), FileRequired(u'File was empty!')])
submit = SubmitField('Submit')

@app.route('/', methods=['GET','POST'])
def predict():
form = UploadForm()
if form.validate_on_submit():
payload = {}
files = [
('user_image', form.data['user_image'])
]
#response = requests.post(api_url, data={'user_image': form.data['user_image']}, headers=headers, verify=False)
response = requests.request("POST", api_url, headers=headers, data = payload, files = files, verify=False)
print(response.text)
return 'some text'

return render_template('index.html', form=form)
Wenn auf der Serverseite überprüft wird, wird der Zeilendruck ('check1') ausgeführt, aber der Zeilendruck ('check2') wird nicht ausgeführt. < /p>
Ich denke, der Fehler ist mit den folgenden 2 Zeilen, bei denen das Bild an die API -URL in der Postanforderung < /p>
Zeile1: < /p> < Br />

Code: Select all

files = [
('user_image', form.data['user_image'])
]

< /code>
Zeile2: < /p>
response = requests.request("POST", api_url, headers=headers, data = payload, files = files, verify=False)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post