Найти - Пользователи
Полная версия: Flask-login, или wtforms, делают что-то странное
Начало » Web » Flask-login, или wtforms, делают что-то странное
1 2
Nahtrezer
А каков шанс, что wtf.quick_form криво сгенерировал форму?
<form action="." method="post" class="form" role="form">
  <div style="display:none;"><input id="csrf_token" name="csrf_token" type="hidden" value="1435011238##c2f2001067e9c48da345e9209a043ead473f57ea"></div>
  <div class="form-group  required"><label class="control-label" for="email">Email</label>
        <input class="form-control" id="email" name="email" required type="text" value="">
  </div>
  <div class="form-group  required"><label class="control-label" for="password">Passsword</label>
        <input class="form-control" id="password" name="password" required type="password" value="">
  </div>
    <div class="checkbox">
      <label>
        <input id="remember_me" name="remember_me" type="checkbox" value="y"> Remember me
      </label>
    </div>
    <input class="btn btn-default" id="submit" name="submit" type="submit" value="Log in">
</form>
Nahtrezer
Итак
@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    print form.errors
    if form.is_submitted():
        print "submitted"
    return render_template('login.html', form=form)

Но по нажатию Submit на форме получаю редирект на ‘/’
Пребываю в тихом ужасе.
4kpt_III
Да все работает. Вот код:

@app.login_manager.user_loader
def get_user(user_id):
    user = g.db_session.query(Client).filter_by(id=user_id).one()
    return user
#
@app.route("/login/", methods=["GET", "POST"])
def log_in():
    form = LoginForm()
    if form.validate_on_submit():
        # use data from request.form
        user = g.db_session.query(Client).first()
        login_user(user)
        # redirect to index
        return redirect(url_for("IndexView:index"))
    else:
        return render_template("login.html", form=form)
#
@app.route("/logout/", methods=["GET"])
def log_out():
    logout_user()
    # redirect to index
    return redirect(url_for("IndexView:index"))
Nahtrezer
Исправил
@app.route('/login', methods=['GET', 'POST'])]
на
@app.route('/login/', methods=['GET', 'POST'])]
Теперь всё работает O_o
Если так и надо, то почему во всех источниках второй слеш опускают?…
4kpt_III
Nahtrezer
сли так и надо, то почему во всех источниках второй слеш опускают?…

В документации об этом есть. Поэтому и опускают, зная, что Вы уже прочитали документацию
Nahtrezer
4kpt_III
В документации об этом есть. Поэтому и опускают, зная, что Вы уже прочитали документацию
Не нашел
В любом случае, большое спасибо за помощь.
sander
Nahtrezer
первая ссылка
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB