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)
È stato utile?

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

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