Vue+Flask实现简单的登录验证跳转的示例代码

  • 2022-06-24 17:14:42

本文介绍了vue+flask实现简单的登录验证跳转,分享给大家,具体如下:

文件位置: Vue+Flask实现简单的登录验证跳转的示例代码

login.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>login</title>

  <script type="text/javascript" src="../static/vue.js"></script>
  <script type="text/javascript" src="../static/axios.js"></script>

</head>
<body>

<div id="login">
  <form action="#" novalidate>
    <label for="username">username</label>
    <input type="text" name="username" id="username" placeholder="enter your name" v-model="username"><br>
    <label for="password">password</label>
    <input type="text" name="password" id="password" placeholder="enter your password" v-model="password"><br>
    <br>

    <button type="button" v-on:click="login">apply</button>
  </form>
</div>


<script type="text/javascript">
  var login = new vue({
    el: '#login',
    data:{
      username: '',
      password: ''
    },
    methods: {
      login: function () {
        axios.post('http://127.0.0.1:5000/login',{
          username: this.username,
          password: this.password
        }).then(function (response) {
          console.log(response.status)
          // 其实是应该走后台路由
          if(parseint(response.status) === 200){
            window.location.href = 'index'
          }
        }).catch(function (error) {
          console.log(error.response)
        })

      }
    }
  })
</script>

</body>
</html>

index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>index</title>
</head>
<body>
  <h1>hello,this is index page!</h1>
</body>
</html>

login.py

# -*- coding: utf-8 -*-

from flask import flask, request, session, redirect, url_for, render_template, make_response, jsonify
app = flask(__name__)


@app.route('/login', methods=('get', 'post'))
def login():
  if request.method == 'post':
    session['username'] = request.json.get('username')
    session['password'] = request.json.get('password')
    # 登录成功,则跳转到index页面
    return jsonify({'code': 200, 'token': "123456"})
  # 登录失败,跳转到当前登录页面
  return render_template('login.html')


@app.route('/index')
def index():
  # 如果用户名和密码都存在,则跳转到index页面,登录成功
  if 'username' in session and 'password' in session:
    return render_template('index.html')
  # 否则,跳转到login页面
  return redirect(url_for('login'))


@app.route('/logout')
def logout():
  session.pop('username', none)
  session.pop('password', none)
  return redirect(url_for('login'))


# set the secret key. keep this really secret:
app.secret_key = 'a0zr98j/3yx r~xhh!jmn]lwx/,?rt'


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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

猜你喜欢