2016-09-28 4 views
0

им создавая Логин кодовую страницу-им разноски Doesnt дать какие-либо ошибки запрос не проходит через

if request.method == 'POST' and formLogin.validate(): 
     if formLogin.username_signin == 'admin' and formLogin.password_signin == 'admin': 
      return redirect(url_for('home'))

этот кусок кода получает пропускаются, даже когда я поставил админа в коробке коробки (wtforms) вот код им с помощью:

app = Flask(__name__) 
app.secret_key = 'jjjjjjj' 

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


@app.route('/login/', methods=['GET', 'POST']) 
def login(): 


    formLogin = LoginForm(request.form) 
    error = None 

    if request.method == 'POST' and formLogin.validate(): 
     if formLogin.username_signin == 'admin' and formLogin.password_signin == 'admin': 
      return redirect(url_for('home')) 
     else: 
      error = 'Please enter right credentials.' 
      return render_template('login.html', error=error, formLogin=formLogin) 

    return render_template('login.html', error=error, formLogin=formLogin) 


if __name__ == '__main__': 
    app.debug = True 
    app.run() 

мой login.html:

{% extends 'base.html' %} 

{% block head %} 
     <div class='container'> 
      <div class='row'> 
       <form method= post action='/login/'> 
        {{ formLogin.username_signin(class='form-control', placeholder='Username') }} 
        {{ formLogin.password_signin(class='form-control', placeholder='Password') }} 
        {{ formLogin.submit_signin(class='btn btn-primary') }} 
       </form> 
       <p><strong>Error:</strong>{{ error }}</p> 
      </div>  
     </div> 
     {% endblock %} 

Form.py

from wtforms import Form,StringField, PasswordField, TextField, BooleanField, SubmitField, validators 

class LoginForm(Form): 

    username_signin = StringField('SigninU', [validators.Required('please enter name')]) 
    password_signin = PasswordField('signinP', [validators.Required('need password')]) 
    submit_signin = SubmitField('Signin') 

Как я уже сказал, все делает ОК и им не достает ошибку. Моя проблема в том, что когда я помещаю «admin» в обе коробки, а не перенаправляю меня на функцию home(), он просто переходит прямо к инструкции else.

+0

Как вы определяете LoginForm? –

+0

Только что обновленное сообщение с LoginForm – quechon

+0

Следующим шагом будет добавить некоторые инструкции печати для formLogin и request.form, чтобы попытаться устранить то, что на самом деле получает там назначение. –

ответ

1

Чтобы получить доступ к get_data, вы должны использовать .data.

if request.method == 'POST' and formLogin.validate(): 
    if formLogin.username_signin.data == 'admin' and formLogin.password_signin.data == 'admin': 
     return redirect(url_for('home')) 
+0

Спасибо, что сделал это для меня !! – quechon

+0

Если ответ правильный, отметьте это как правильный ответ для зрителей .. @ quechon – SumanKalyan

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