2016-09-17 4 views
0

Я свежий разработчик флеш-фреймворка, и я застрял в этих методах для отображения сообщения об ошибке, и я не понимаю, как использовать флеш-сообщение флешки. Я думал об этом в течение 3 или 4 дней, и я понял, как справиться с этой проблемой. поэтому мой план прост, я делаю аутентификационный логин в своем телезрителе. Если это результат вывода с значением false, он выдаст код ошибки, и код ошибки будет показан на моей странице входа. вот как я реализовал свою идею.Как использовать флеш-сообщения флеш-памяти в 2-х различных приложениях.

@app.route('/login/process', methods = ['POST']) 
def loginprocess(): 
    username = request.form.get('user_name') 
    passwd = request.form.get('user_passwd') 
    userAdminAuth = userLogin.checkUserAdmin(username, passwd) 
    userMemberAuth = userLogin.checkUserMember(username, passwd) 
    if userAdminAuth == True and userMemberAuth == False: 
     session['logged_in'] = True 
     session['username'] = username 
     return redirect(url_for('admin')) 

    elif userAdminAuth == False and userMemberAuth == True: 
     session['logged_in'] = True 
     session['username'] = username 
     return redirect(url_for('member')) 

    else: 
     error = 'Invalid username or password' 
     return redirect(url_for('login')) 

@app.route('/login') 
def login(): 
    return render_template('login.html') 

И в HTML коде у меня есть это один

{% if error %} 
    <div class="alert alert-danger" role="alert"> 
     <span class="glyphicon glyphicon-exclamation-sign"></span> 
     <span class="sr-only">Error</span> 
     {{ error }} 
    </div> 
{% endif %} 

Вопрос заключается в том, как я могу передать переменную

error = 'Invalid username or password' 

В поле URL маршрута

@app.route('/login/process', methods=['POST']) 

к URL маршрут

@app.route('/login') 

О любом случае вы должны знать это один

<form action="/login/process" method="post"> 
    <div class="form-group"> 
    <div class="input-group"> 
     <div class="input-group-addon icon-custumized"><span class="glyphicon glyphicon-user"></span></div> 
     <input type="text" name="user_name" class="form-control form-costumized" placeholder="Username"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="input-group"> 
     <div class="input-group-addon icon-custumized"><span class="glyphicon glyphicon-lock"></span></div> 
      <input type="password" name="user_passwd" class="form-control form-costumized" placeholder="Password"> 
     </div> 
     </div> 
     <div class="btn-toolbar" role="toolbar" aria-label="action"> 
     <div class="btn-group" role="group" aria-label="action"> 
      <a class="btn btn-default btn-customized" href="#"><span class="glyphicon glyphicon-list-alt"></span> <span class="textsize">Register</span></a> 
      <button type="submit" class="btn btn-default btn-customized"><span class="textsize">Login</span> <span class="glyphicon glyphicon-menu-right"></span></button> 
     </div> 
    </div> 
</form> 

ответ

1

В Python, вы должны вызвать:

flask.flash('This is the message') 

Затем, при использовании шаблона get_flashed_messages получить мелькнула сообщения и отображать их , например:

{% with messages = get_flashed_messages(with_categories=True) %} 
    {% for category, message in messages %} 
     <div class="flash {{category}}">{{message}}</div> 
    {% endfor %} 
{% endwith%} 

Flask documentation имеет очень простой и приятный пример.

То, что сообщение мелькнуло в одном маршруте и отображается в другом, не является проблемой. Это именно тот случай использования flask.flash!

+0

Как насчет маршрутизации URL? Я всегда получал код ошибки 304, когда пытаюсь следовать руководству из документации фляжки. И я понятия не имел, как это исправить. – SufferProgrammer

+0

@SufferProgrammer Что вы подразумеваете под url routing? Я не думаю, что никогда не видел код ошибки 304. Мне нужно было сделать это, чтобы посмотреть, что это такое;) – zvone

+0

Вы знаете, что в документации флагов вы устанавливаете

в , и когда я открываю свою страницу входа, она возвращает код ошибки 304. Я все еще не понимаю. – SufferProgrammer

 Смежные вопросы

  • Нет связанных вопросов^_^