请求未通过
request not going through
我正在创建一个登录页面,我发布的代码没有给出任何错误
if request.method == 'POST' and formLogin.validate():
if formLogin.username_signin == 'admin' and formLogin.password_signin == 'admin':
return redirect(url_for('home'))
即使我将 admin 放入 boxes(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声明。
您必须使用 .data
才能访问 get_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'))
我正在创建一个登录页面,我发布的代码没有给出任何错误
if request.method == 'POST' and formLogin.validate(): if formLogin.username_signin == 'admin' and formLogin.password_signin == 'admin': return redirect(url_for('home'))
即使我将 admin 放入 boxes(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声明。
您必须使用 .data
才能访问 get_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'))