2010-08-16 36 views
-1

基本上我想返回create_user的内容在注册函数中用来保存到我的数据库中。我是一个完整的初学者。我误解了什么?Python初学者问题 - 试图理解return语句

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

我很困惑你的第二个回报声明。 :它不是缩进的,如果是,它永远不会被执行。 :■ – 2010-08-16 19:04:00

回答

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

4

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

1

您是否记得导入请求?不知道你在使用什么,但它看起来像Flask,如果是这样的话,它是'从瓶子导入请求'。