2015-06-18 12 views
5

Con SQLAlchemy, Se ho una colonna unica nel mio database ad esempio, il nome utente:SQLAlchemy - Gestione dei guasti vincolo

username = db.Column(db.String(50), unique=True) 

Quando aggiungere una riga che rompe questo vincolo in cui il nome utente sto cercando di aggiungere già esiste, un IntegrityError è gettato:

IntegrityError: (IntegrityError) (1062, u"Duplicate entry 'test' for key 'username'") 

E 'possibile mappare invece la rottura di un vincolo a un eccezione personalizzata? eg.UsernameExistsError

Desidero essere in grado di catturare le singole interruzioni di vincoli e inviare una risposta all'utente. es .: "Questo nome utente è già in uso"

È possibile? O quale sarebbe la prossima cosa migliore?

Qualsiasi orientamento sarebbe molto apprezzato :)

risposta

2

La cosa migliore potrebbe essere circonda la chiamata con un try ... except, l'analisi del messaggio di errore, e avvisare l'utente con un messaggio di errore costruito.

Lungo queste righe, è possibile l'errore try ... except e restituire un codice di errore personalizzato con Flask custom error pages.

+0

temevo che l'analisi dell'errore sarebbe stata l'unica opzione possibile. Sarebbe fantastico se Flask fosse in grado di gestire cose come questa ... – mickzer

Problemi correlati