Вопрос новичка в Python - пытаясь понять ответ - PullRequest
0 голосов
/ 16 августа 2010

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

4 голосов
/ 16 августа 2010

Я думаю, вы где-то потеряли форматирование.Первый оператор return должен иметь достаточно большой отступ, чтобы он находился внутри блока if, а второй оператор return должен совпадать с блоком if.Если проверка завершается успешно, возвращается кортеж create_user, redirect(url_for('loggedin.html')), в противном случае возвращается render_template('get-started.html', form=form).

3 голосов
/ 16 августа 2010

Ваш отступ неверен; Вы хотите:

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)

Отступы обозначают блоки кода. Вам нужно сделать отступ all внутри функции, чтобы показать, что это код, соответствующий этой функции, и все, что находится внутри if. Вы не сделали отступ для if.

1 голос
/ 14 октября 2011

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

...