Вопрос на новинках 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, а второе оператор возврата следует выстроить с помощью блока IF. Если проверка успешна, то она возвращает кортеж create_user, redirect(url_for('loggedin.html'))
, иначе он возвращает render_template('get-started.html', form=form)
.
Вы помнили, чтобы импортировать запрос? Не уверен, что вы используете, но это выглядит как колба для меня, и если это так, что это «от флэкса импорта».