2017-08-25 1 views
0

Ich habe ein sehr einfaches Benutzer-Login-System ohne eine Datenbank gebaut, aber die Umleitung ist wieder ein Problem. Wenn der vorgelegten Benutzernamen & Passwort aus der HTML-Datei korrekt ist, dann ist Python, das Folgende tun:Python Flask Benutzeranmeldung Umleitung

@app.route("/", methods=['GET', 'POST']) 
def login_page(): 
    if request.method == 'POST': 
     attempted_username = request.form['username'] 
     attempted_password = request.form['password'] 

     if attempted_username == 'admin' and attempted_password == 'password': 
      return redirect(url_for('index')) 
     else: 
      error='E-Mail or Password not available' 
    return render_template('login.html', error=error) 

Nun ist die URL wird die folgende: shost/index und Chrome sagt mir dann

ERR_NAME_NOT_RESOLVED 
The DNS address of the shost server couldnt be found. 

Warum isn Wenn die URL server_IP/index wird, z 127.0.0.1/index, weil dieser in meinem Browser funktioniert. Wie kann ich verhindern, dass der Kolben die shost ausgibt?

Hier ist auch die HTML-Formular-Code für das Login:

<form class="text-left" method="post" action=""> 
    <input class="mb0" type="text" placeholder="Username" name="username" value="{{request.form.username}}"/> 
    <input class="mb0" type="password" placeholder="Password" name="password" value="{{request.form.password}}"/> 
    <input type="submit" value="Login"/> 
</form> 

Der @app.route("/index") Abschnitt des Codes sieht wie folgt aus:

@app.route("/index") 
def index(): 
    return render_template('index.html') 

Vielen Dank und viele Grüße

+0

Bitte den Rest der 'login_page' und der' index' Route einbeziehen. –

+0

@ edgaromar90 danke für das Feedback. Ich habe den Formularcode hinzugefügt. – saitam

+0

Ich denke, ich weiß, was Ihr Problem ist. Lassen Sie mich den Abschnitt '@ app.route ("/index ") Ihres Codes sehen. –

Antwort

0

Es spielt keine Sieht so aus, als würden Sie die Seite für den Login rendern, Sie sagen nur Python, die Indexseite zu generieren, wenn POST verwendet wird, aber POST wurde nicht benutzt, weil kein Formular co war schon fertig. Außerdem müssten Sie in der Return-Weiterleitung (url_for ('index')) die 'App' hinzufügen. .

Versuchen Sie etwas wie das.

@app.route('/', methods=['GET', 'POST']) 
def login(): 
    if request.method == 'POST': 
     attempted_username = request.form['username'] 
     attempted_password = request.form['password'] 

     if attempted_username == 'admin' and attempted_password == 'password': 
      return redirect(url_for('app.index')) 

    return render_template('loginpage.html') 
+0

den Post bearbeitet hat. Ich benutze das Reedern – saitam