python3使用cookie保持状态

本篇简单介绍使用cookie来记住用户名

1.视图函数:views.py

from django.shortcuts import render,redirect


# Create your views here.
def index(request):
    '''首页'''
    return render(request,'user/index.html')


def login(request):
    '''登录页面'''
    
    #如果用户名被设置在了cookie里,那么将其返回前端登录页面
    if 'username' in request.COOKIES:
        username = request.COOKIES['username']
    else:
        username = ''
    return render(request,'user/login2.html',{'username':username})


def login_check(request):
    '''登录校验'''
    
    username = request.POST.get('username')#获取输入的用户名
    password = request.POST.get('pwd')#获取输入的密码
    remember = request.POST.get('remember')#获取用户是否点击“记住用户名”的checkbox
    if username == 'yht' and password == '123456':#此处写死用户名和密码
        response = redirect('index')
        #如果点击了记住用户名的checkbox,那么就设置cookie
        if remember == 'on':
            response.set_cookie('username',username,max_age=7*24*3600)
        return response
    else:
        return redirect('login')

2.前台代码

login2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <form action="check_login" method="post">
        <input type="text" name="username" placeholder="输入用户名" value="{{ username }}"><br>
        <input type="password" name="pwd" placeholder="输入密码" value="{{ pwd }}"><br>
        <input type="checkbox" name="remember">记住用户名<br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <p>首页</p>
</body>
</html>

3.路径配置urls.py

from django.urls import path
from user import views

urlpatterns = [
    path('index',views.index,name='index'),
    path(r'login',views.login,name='login'),
    path('check_login',views.login_check),

]

4.启动django服务,访问登录地址:http://127.0.0.1:8000/login,输入用户名及密码,点击“记住用户名”,跳转到首页,关闭浏览器再次访问,直接显示用户名。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值