Вопрос на новинках Python - пытаясь понять оператор возврата

StackOverflow https://stackoverflow.com/questions/3496321

  •  29-09-2019
  •  | 
  •  

Вопрос

В основном я хочу вернуть содержимое 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).

Вы помнили, чтобы импортировать запрос? Не уверен, что вы используете, но это выглядит как колба для меня, и если это так, что это «от флэкса импорта».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top