Flask Request.Data Fehler: bytes object is not callable

Django, Flask, Bottle, WSGI, CGI…
Antworten
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Ich habe hier bei diesem Code hier, den Fehler bekommen und die im Internet beschriebenen Lösungen funktionieren nicht. Kann mir hier vlt. jemand weiter helfen?

Code:

Code: Alles auswählen

from flask import Flask, render_template, url_for, request

app = Flask(__name__)

@app.route('/',methods=['GET','POST'])
def index():
    return render_template('index.html')

@app.route('/getdata', methods=['GET', 'POST'])
def getdata():
    if request.method == 'POST':
        data = request.data()
        return data
    return '''
    <!doctype html>
    <title>Upload new Data</title>
    <h1>Upload new Data</h1>
    <form method=post enctype=multipart/form-data>
      <input type=file name=file>
      <input type=submit value=Upload>
    </form>
    '''



if __name__ == '__main__': app.run(debug=True)
Fehler:

Code: Alles auswählen

2018-08-10T20:51:03.191141+00:00 app[web.1]:   File "/app/app.py", line 20, in getdata

2018-08-10T20:51:03.191143+00:00 app[web.1]:     data = request.data()

2018-08-10T20:51:03.191151+00:00 app[web.1]: TypeError: 'bytes' object is not callable
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

request.data ist keine Funktion, die du aufrufen kannst, sondern ein normales Attribut, das schon die Bytes aus dem Request enthaelt. Ich bin kein grosser Flask-Experte, aber rohe bytes sind wahrscheinlich nicht, was du willst - da gibt es bestimmt auch text oder content.
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Ja ich möchte Zahlen haben. Wasmuss ich dann schreiben um diese zu bekommen?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich verstehe deine Frage im Kontext der ersten und meiner Antwort überhaupt nicht. Dazu musst du schon mehr erzählen, was da passieren soll.
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Du hast gesagt das das so gar nicht Funktionieren kann mit diesem Aufbau. Dann hab ich gefragt wie ich den Code umschreiben muss um die Zahlen, die ich erhalten möchte erhalten kann. Und diese dann in die Variabel ablegen kann, um sie dann am ende auf der Webseite anzuzeigen.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe nichts dergleichen gesagt. Ich habe nur gesagt, dass dein Fehler daher kommt, das du ein Datenattribut behandelst wie eine Funktion. Nimm die Klammern weg, und du hast deine ‚Zahlen‘.
Antworten