我在auth蓝图中有这个烧瓶代码:
@auth.route('/login/',methods=['POST','GET'])
def login():
email = request.form.get('email',type=str)
password = request.form.get('password',type=str)
error = None
if email != None and password != None:
if verify_user(email,password):
user = next((item for item in app.config['AUTHORIZED'] if item["email"] == email), None)
session['name'] = user['name']
flash("welcome " + session['name'] + '!')
return redirect(url_for('admin.show'))
error = "invalid credentials"
return render_template('auth/index.html',error=error)
以及管理蓝图中的以下内容,我将从登录名重定向到:
@admin.route('/admin/',methods=['GET'])
def show():
if not 'name' in session:
return abort(403)
return render_template('admin/index.html')
但是,当我成功登录时,只需将admin/index.html
中的html打印到Chrome和Firefox中的javascript控制台。
答案 0 :(得分:2)
由于您提到了JS控制台,您可能会通过Ajax提出此请求。所以你的Ajax处理程序需要进行任何重定向。
答案 1 :(得分:0)
当您从html请求表单数据时,请确保您的按钮具有type="submit"
而不是type="button"
。改变这个问题为我解决了这个问题。
<form class="form-logIn" action="/logIn" method="post">
<label for="email" class="sr-only">Email address</label>
<input type="email" name="email" id="email" class="form-control" placeholder="Email address" required autofocus>
<label for="password" class="sr-only">Password</label>
<input type="password" name="password" id="password" class="form-control" placeholder="Password" required>
<button id="btnLogIn" class="btn btn-lg btn-secondary btn-block" type="submit">Log In</button>
</form>