Flask打印html到控制台而不是重定向

时间:2015-07-10 13:33:24

标签: python flask

我在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控制台。

2 个答案:

答案 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>