欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-24 17:14:42
本文介绍了vue+flask实现简单的登录验证跳转,分享给大家,具体如下: 文件位置: login.html ...

本文介绍了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)

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