Python初学者问题 - 试图理解return语句

时间:2010-08-16 18:57:09

标签: python flask return

基本上我想在register函数中返回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)

3 个答案:

答案 0 :(得分:4)

我认为你在某个地方丢失了一些格式。第一个return语句应缩进得足够远,以至于它位于if块内,第二个return语句应该与if块对齐。如果验证成功,则返回元组create_user, redirect(url_for('loggedin.html')),否则返回render_template('get-started.html', form=form)

答案 1 :(得分:3)

你的缩进是错误的;你想要的:

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

答案 2 :(得分:1)

你还记得导入请求吗?不知道你在使用什么,但对我来说它看起来像Flask,如果是这样,那就是'来自烧瓶导入请求'。