2010-08-16 6 views
-1

Fondamentalement, 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 ne comprends pas?Python débutant question - essayer de comprendre déclaration de retour

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) 
+1

Je suis confus au sujet de votre deuxième déclaration de retour. : s il n'est pas indenté et si c'était le cas, il ne serait jamais exécuté. : s –

Répondre

3

Votre indentation est incorrecte; 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 mettre en retrait tout à l'intérieur de la fonction pour montrer que c'est le code correspondant à cette fonction, et tout ce qui est à l'intérieur du if. Vous n'avez pas mis en retrait pour le if.

4

Je pense que vous avez perdu du formatage quelque part. La première déclaration de retour doit être suffisamment indentée pour être à l'intérieur du bloc if et la seconde déclaration doit s'aligner avec le bloc if. Si la validation réussit, il renvoie le nombre create_user, redirect(url_for('loggedin.html')), sinon il renvoie render_template('get-started.html', form=form).

1

Vous souvenez-vous d'importer la demande? Je ne suis pas sûr de ce que vous utilisez, mais ça ressemble à Flask, et si c'est le cas, il s'agit d'une demande d'importation de flacon.

Questions connexes