Pythonの初心者の質問 - 戻り声明を理解しようとしています
質問
基本的に、レジスタ関数のcreate_userの内容を返して、データベースに保存するために使用します。私は完全な初心者です。私は何を誤解していますか?
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)
解決
あなたのインデントは間違っています。あなたが望む:
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)
インデントの描写コードのブロック。インデントする必要があります すべての 関数内では、それがその関数に対応するコードであり、内部のすべてが if
. 。あなたはのためにインデントされていません if
.
他のヒント
どこかでフォーマットを失ったと思います。最初のリターンステートメントは、IFブロック内にあるほど十分にインデントされ、2番目の返品ステートメントはifブロックに並んでいる必要があります。検証が成功した場合、タプルを返します create_user, redirect(url_for('loggedin.html'))
, 、それ以外の場合は戻ります render_template('get-started.html', form=form)
.
リクエストをインポートすることを覚えていましたか?何を使用しているのかわかりませんが、私にとってはフラスコのように見えます。もしそうなら、「フラスコのインポートリクエストから」です。
所属していません StackOverflow