NameError: naam ‘request’ is niet gedefinieerd

Ik heb deze Python-code gekregen en op de een of andere manier krijg ik de foutmelding:

File "/app/identidock.py", line 13, in mainpage
if request.method == 'POST':
NameError: name 'request' is not defined

Maar ik kan mijn fout echt niet vinden. Kan iemand me daar alsjeblieft mee helpen?

from flask import Flask, Response
import requests
import hashlib
app = Flask(__name__)
salt = "UNIQUE_SALT"
default_name = 'test'
@app.route('/', methods=['GET', 'POST'])
def mainpage():
    name = default_name
    if request.method == 'POST':
        name = request.form['name']
    salted_name = salt + name
    name_hash = hashlib.sha256(salted_name.encode()).hexdigest()
    header = '<html><head><title>Identidock</title></head><body>'
    body = '''<form method="POST">
              Hallo <input type="text" name="name" value="{0}">
              <input type="submit" value="Abschicken">
              </form>
              <p> Du siehst aus wie ein: </p>
             <img src="/monster/{1}"/>
           '''.format(name, name_hash)
    footer = '</body></html>'
    return header + body + footer
@app.route('/monster/<name>')
def get_identicon(name):
    r = requests.get('http://dnmonster:8080/monster/' \
        + name + '?size=80')
    image = r.content
    return Response(image, mimetype='image/png')
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

Antwoord 1, autoriteit 100%

Het lijkt erop dat je bent vergeten de flask.requestrequest contextobject:

from flask import request

Antwoord 2, autoriteit 13%

Je mist waarschijnlijk het volgende importstatement:

from flask import request

die in de kop van het bestand moet worden geplaatst.


Antwoord 3, autoriteit 2%

Dit komt omdat je de importverklaring hebt gemist

from flask import request

Antwoord 4

Gebruik dit zal werken,

self.request

Other episodes