Question

En fait, je veux retourner le contenu de create_user dans la fonction de registre à utiliser pour enregistrer dans ma base de données. Je suis un débutant complet. Qu'est-ce que je comprends mal?

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)
Était-ce utile?

La solution

Votre indenter est faux; vous voulez:

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)

Indentation blocs de code définit. Vous devez tiret tout dans la fonction pour montrer qu'il est le code correspondant à cette fonction, et tout à l'intérieur du if. Vous n'êtes pas en retrait pour le if.

Autres conseils

Je pense que vous avez perdu quelque part une mise en forme. La première déclaration de retour devrait être en retrait assez loin qu'il est à l'intérieur du bloc si et la deuxième déclaration de retour doit être aligné avec le bloc si. Si la validation réussit alors il retourne le tuple create_user, redirect(url_for('loggedin.html')), sinon il retourne render_template('get-started.html', form=form).

Avez-vous pensé à la demande d'importation? Je ne sais pas ce que vous utilisez, mais il semble que Flask pour moi, et s'il est « de demande d'importation de flacon ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top