플라스크 3-07에서 error 문구가 뜨지 않고 있습니다.

안녕하세요!
플라스크 3-07에서

        if not user:
            error = "존재하지 않는 사용자입니다."

저게 떠야 하는데...
제가 실습 중일 때는 저게 먹질 않습니다.
분기문은 타고 있는데 error이 form_error.html에서 진행이 안되고 있습니다...

form_errors.html
<!-- 필드오류 -->
{% if form.errors %}
<div class="alert alert-danger" role="alert">
    {% for field, errors in form.errors.items() %}
    <strong>{{ form[field].label }}</strong>
    <ul>
        {% for error in errors %}
        <li>{{ error }}</li>
        {% endfor %}
    </ul>
    {% endfor %}
</div>
{% endif %}
<!-- flash 오류 -->
{% for message in get_flashed_messages() %}
<div class="alert alert-danger" role="alert">
    {{ message }}
</div>
{% endfor %}

db를 다르게 반영해서 실습 내용과 조금 다릅니다.(차이는 없습니다)

auth_views.py

@bp.route('/login/', methods=('GET', 'POST'))
def login():
    form = UserLoginForm()
    if request.method == 'POST' and form.validate_on_submit():
        error = None
        username = form.username.data
        user = login_id(username) # db에서 값을 받아옴. 정상적으로 받아옴 없으면 None
        if not user:
            error = "존재하지 않는 사용자."
        elif not check_password_hash(user[2], form.password.data):  # 비번은 check_password_hash 함수로 암호화 후 db의 값과 비교
            error = "비밀번호가 올바르지 않습니다."
        if error is None:
            session.clear()
            session['user_id'] = user[0]
            return redirect(url_for('main.index'))

    return render_template('auth/login.html', form=form)

login.html

{% extends "base.html" %}
{% block content %}
<div class="container">
    <h5 class="my-3 border-bottom pb-2">로그인</h5>
    <form method="post">
        {{ form.csrf_token }}
        {% include "form_errors.html" %}
        <div class="mb-3">
            <label for="username">사용자 이름</label>
            <input type="text" class="form-control" name="username" id="username" value="{{ form.username.data or '' }}">
        </div>
        <div class="mb-3">
            <label for="password">비밀번호</label>
            <input type="password" class="form-control" name="password" id="password" value="{{ form.password.data or '' }}">
        </div>
        <button type="submit" class="btn btn-primary">로그인</button>
    </form>
</div>
{% endblock %}

하다하다 안되서 질문 남겨봅니다...
한번더 말씀 드리자면 error = "존재하지 않는 사용자입니다" 이게 login.html에서 뜨지 않고 있습니다..

kingsman 377

M 2022년 8월 5일 10:59 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page

flash(error) 가 빠진것 같습니다.
다음을 참고해 보세요.

https://wikidocs.net/81058

박응용

2022년 8월 5일 11:19 오전

+1 저 한줄로 하루를 해맸네요...ㅠㅠ 해결 했습니다. 정말 감사합니다. - kingsman님, 2022년 8월 5일 11:54 오전 추천 , 대댓글