Sto scrivendo una piccola app in bottiglia. Ho qualche problema concettuale aiutami a risolverlo

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

  •  28-09-2019
  •  | 
  •  

Domanda

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')

Il mio requisito è: riceverò una pagina di accesso e benvenuto sullo stesso URL. La pagina di accesso ha solo un campo password.

Il mio problema: se ricevo l'accesso e torno alla pagina di benvenuto su rinfrescante, mi invia alla pagina di accesso. Ma idealmente dovrebbe essere solo nella pagina di benvenuto.

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

Il mio secondo problema: voglio reindirizzare su un determinato URL su 404.

È stato utile?

Soluzione

Se l'utente va alla pagina "/home", non vuoi verificare se vengono effettuati l'accesso prima di mostrare loro la schermata di accesso? Sembra che tu prestassi che non abbiano già effettuato l'accesso se il metodo HTTP non è post.

Non so molto del tuo framework, ma presumo che se l'accesso abbia successo dovresti impostare un cookie, e quindi dovresti controllare il cookie per HTTP può vedere se l'utente è autenticato.

Altri suggerimenti

La tua seconda domanda ha una risposta qui.

Potresti anche dare un'occhiata Sessioni di biscotti di Beaker e usalo per mantenere lo stato dell'applicazione tra le richieste.

Se capisco correttamente la domanda, l'unico modo per ottenere il modello di benvenuto è tramite Post.

Potresti modificarlo in modo che ricevi le richieste di verificare se qualcuno è effettuato l'accesso. Se ciò non riesce, reindirizzarle alla pagina di accesso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top