Python web cookies简单操作、通俗解释(附django部分代码)

cookies 通俗简单解释

用户访问一个浏览器支持cookie的网站的时候,用户会将自己的个人信息发送给服务器,网站服务器后台会根据这个信息返回给用户一个cookie,客户端收到这个信息之后会将这个cookie存放在本地,当客户端再次访问服务器的时候,会把这个cookie放到HTTP请求头里发送给服务器,这样服务器就知道还是这个用户就可以做相对应的处理。
浏览器相当与一个中间联络人,用户第一次访问服务器时,用户告诉了服务器它是谁,服务器就告诉浏览器这个人的信息告诉浏览器这个人在一定时间内带着你的信息来我就知道还是那个用户,用户以后访问服务器时候就是带着中间联络人浏览器去的,浏览器就会告诉服务器,这个人还是之前那个人,服务器就可以不做第二次验证了。

代码(django里面的部分代码,没学过django的只看逻辑也可以)

def login(request):
    if request.COOKIES.get('driverID'):   #检测cookie,检测到cookie之后跳转用户
                                         #界面(相当于用户第二次访问请求头存在cookie)
        db = mysql()
        db.driverSeesion(request.COOKIES.get('driverID'), 1) #这个是数据库操作,不是cookie操作,不要误会
        print("已登录!")
        return render(request, 'index.html')

    if request.method =="GET":
        return render(request, 'login.html')

    if request.method =="POST":     #先从这里开始看
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        print(username, password)
        if username and password:    #用户登陆时候,将用户名和密码发送给服务器,服务器进行验证
            db = mysql()
            user = db.getuser(username)
            if user and password == user['password']: #验证成功
                print("登陆成功!", username)
                db.driverSeesion(user['driverID'], 1)
                res = render(request, 'index.html')
                res.set_cookie('driverID', user['driverID'], 7200) #验证成功后创建cookie,发送给浏览器,
                										   #cookie存在时间7200,过了这个时间cookie就无法验证了
                return res
            else:
                return render(request, 'login.html')


def loginout(request):
    if request.COOKIES.get('driverID'):
        print("已注销!")
        print("driverID=", request.COOKIES.get('driverID'))
        res = render(request, 'login.html')
        res.delete_cookie('driverID')
        db = mysql()
        db.driverSeesion(request.COOKIES.get('driverID'),0)  # 用户主动注销账号要删除cookie
        return res

    return render(request, 'login.html')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值