Python domanda principianti - cercando di capire istruzione return
Domanda
In sostanza voglio restituire il contenuto del create_user nella funzione di registro da utilizzare per salvare al mio database. Io sono un principiante assoluto. Che cosa sto malinteso?
def register():
form = SignupForm(request.form)
if request.method == 'POST' and form.validate():
create_user = ({'username' : form.username.data, 'email' : form.email.data,
'password': form.password.data})
flash('Thanks for registering')
return create_user, redirect(url_for('loggedin.html'))
return render_template('get-started.html', form=form)
create_user = register()
doc_id, doc_rev = db.save(create_user)
Soluzione
Il rientro è sbagliato; si vuole:
def register():
form = SignupForm(request.form)
if request.method == 'POST' and form.validate():
create_user = ({'username' : form.username.data, 'email' : form.email.data,
'password': form.password.data})
flash('Thanks for registering')
return create_user, redirect(url_for('loggedin.html'))
return render_template('get-started.html', form=form)
Rientro delinea blocchi di codice. È necessario trattino tutto all'interno della funzione per mostrare che è il codice corrispondente con quella funzione, e tutto all'interno della if
. Non hai rientrato per il if
.
Altri suggerimenti
Credo che tu abbia perso un po 'da qualche parte la formattazione. La prima affermazione di ritorno dovrebbe essere rientrato abbastanza lontano che è all'interno del blocco if e la seconda istruzione ritorno dovrebbe allinearsi con il blocco if. Se la convalida ha esito positivo, allora restituisce il create_user, redirect(url_for('loggedin.html'))
tupla, altrimenti restituisce render_template('get-started.html', form=form)
.
Ti sei ricordato di richiesta di importazione? Non sei sicuro di quello che si sta utilizzando, ma sembra che Flask a me, e in tal caso si tratta di 'dal richiesta boccetta di importazione'.