Ich schreibe eine kleine App in Flasche. Ich habe ein konzeptionelles Problem, das mir hilft, es zu lösen

StackOverflow https://stackoverflow.com/questions/4289115

  •  28-09-2019
  •  | 
  •  

Frage

from bottle import  route, run, debug, error, request, template

@route('/home')
@route('/home/')
def login():
    return template('templates/login')

@route('/home', method='POST')
@route('/home/', method='POST')
def welocme():
    data = request.POST
    if data:
        password = data.get('password')
        check_pass = 'password'
        if password == check_pass:
            return template('templates/welcome')
        else:
            return template('templates/login')
    else:
        return template('templates/login')

Meine Anforderung ist: Ich werde eine Anmeldungs- und Begrüßungsseite auf derselben URL erhalten. Die Anmeldeseite verfügt nur über ein Kennwortfeld.

Mein Problem: Wenn ich mich anmeldet und auf Aktualisieren erneut auf Seite willkommen gehe, schicke es mich zur Anmeldeseite. Aber im Idealfall sollte es nur auf der Begrüßungsseite sein.

@error(404)
def error404(error):
    return 'http://google.com'

Mein zweites Problem: Ich möchte auf einer bestimmten URL auf 404 umleiten.

War es hilfreich?

Lösung

Wenn der Benutzer zur Seite "/home" geht, möchten Sie nicht überprüfen, ob er angemeldet ist, bevor er ihnen den Anmeldebildschirm anzeigt? Es sieht so aus, als würden Sie davon ausgehen, dass sie nicht bereits angemeldet sind, wenn die HTTP -Methode nicht post ist.

Ich weiß nicht viel über Ihr Framework, aber ich gehe davon aus, dass Sie ein Cookie festlegen sollten, und dann sollten Sie das Cookie für HTTP überprüfen, um festzustellen, ob der Benutzer authentifiziert ist.

Andere Tipps

Ihre zweite Frage wird beantwortet hier.

Vielleicht möchten Sie sich auch ansehen Becher -Kekssitzungen und verwenden Sie das, um den Zustand Ihrer Anwendung zwischen Anfragen zu halten.

Wenn ich die Frage richtig verstehe, ist die einzige Möglichkeit, die Begrüßungsvorlage zu rendern, per Post.

Sie können dies ändern, damit Anfragen prüfen, ob jemand angemeldet ist. Wenn dies fehlschlägt, dann leiten Sie sie auf die Anmeldeseite um.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top