基于flask框架设计用户的登录(前后端)

本文介绍使用Flask框架实现用户登录的前后端代码。前端通过HTML表单收集用户名、密码及是否记住密码的选择;后端接收并验证这些信息,若正确则设置session和cookie,实现登录状态的保持。

基于flask框架设计用户的登录(前后端)

前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
	<form action="/05-login" method="post">
	    <p>用户名:<input type="text" name="uname" ></p>
	    <p>密码:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="upwd"></p>
	    <p>记住密码:<input type="checkbox" name="isSaved"></p>
	    <input type="submit" value="提交">
	</form>
</body>
</html>

后端代码

from flask import Flask, make_response, request, session, render_template, redirect

app = Flask(__name__)
# 配置 SELECT_KEY
app.config['SECRET_KEY']='aixieshaxiesha,yuefuzayuehao%$'

@app.route('/')
def index():
    return "欢迎来到首页"
    
@app.route('/login',methods=['GET','POST'])
def login():
    if request.method == 'GET':
        # 判断是否已经在登录状态上:判断session中是否有uname的值
        if 'uname' in session:
            # 已经登录了,直接去往首页
            return redirect('/')
        else:
            # 没有登录,继续向下判断cookie
            if 'uname' in request.cookies:
                # 曾经记住过密码,取出值保存进session
                uname = request.cookies.get('uname')
                session['uname'] = uname
                return redirect('/')
            else:
                # 之前没有登录过,去往登录页
                return render_template('login.html')
    else:
        #先处理登录,登录成功继续则保存进session,否则回到登录页
        uname = request.form.get('uname')
        upwd = request.form.get('upwd')
     	# 本文默认正确的账号密码为:admin
        if uname=='admin' and upwd=='admin':
            # 声明重定向到首页的对象
            resp = redirect('/')
            # 登录成功:先将数据保存进session
            session['uname'] = uname
            # 判断是否要记住密码
            if 'isSaved' in request.form:
                # 需要记住密码,将信息保存进cookie
                resp.set_cookie('uname',uname,60*60*24*365)
            return resp
        else:
            # 登录失败
            return redirect('/login')

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

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值