码迷,mamicode.com
首页 > 其他好文 > 详细

Day21-Cookie

时间:2017-10-17 15:12:50      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:说明   end   color   set   direct   获取   dir   eve   lan   

1. Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。例如在某个网站上保存了用户名和密码,3个月内免登陆。如果你换台电脑或者浏览器的话,则需要重新登录。就此说明cookie是保存在客户端浏览器上的一个文件。

技术分享

 

2.实例---基于cookie实现用户信息验证

当用户名和密码都正确的时候,才跳转到index页面。否则就停留在login.html页面。

 

2.1 在setting中注释掉下面一句,防止报错

技术分享

 

2.2 在urls.py中写路由对应关系

技术分享

 

 

2.3 views.py写后端

from django.shortcuts import render,HttpResponse,redirect
from django.urls import reverse
# Create your views here.

user_info={
    ‘dachengzi‘:{‘pwd‘:"123123"},
    ‘kanbazi‘:{‘pwd‘:"kkkkkkk"},
}
def login(request):
    if request.method==‘GET‘:
        return render(request,‘login.html‘)
    if request.method == ‘POST‘:
        u=request.POST.get(‘username‘)
        p=request.POST.get(‘pwd‘)
        dic=user_info.get(u)
        if not dic:
            return render(request,‘login.html‘)
        if dic[‘pwd‘]==p:
            res=redirect(‘/index/‘)
            res.set_cookie(‘username111‘,u)
            return res
        else:
            return render(request,‘login.html‘)

def index(request):
    #获取当前以及登录的用户名字
    v=request.COOKIES.get(‘username111‘)
    if not v:
        return redirect(request,‘/login/‘)
    return render(request,‘index.html‘,{‘current_user‘:v})

 

2.4 写前端 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>欢迎登录:{{current_user}}</h1>
</body>
</html>

 

2.4 写前端 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/login/" method="POST">
        <input type="text" name="username" placeholder="用户名"/>
        <input type="password" name="pwd" placeholder="密码"/>
        <input type="submit"/>

    </form>
</body>
</html>

 

 

2.5 效果

技术分享

 

技术分享

 

 

3. 在Django里面给cookie提供了一些额外的功能。

request.COOKIES-------表示用户发来数据的时候,它里面带的所携带的所有cookie信息。。。从请求中获取cookie
def cookie(request):
    #用户发来请求时,它里面所携带的所有的cookie信息
    request.COOKIES
    request.COOKIES[‘username111‘]
    request.COOKIES.get(‘username111‘)

设置cookie

response.set_cookie(‘key‘,‘value‘)
def cookie(request):
    #用户发来请求时,它里面所携带的所有的cookie信息
    request.COOKIES
    request.COOKIES[‘username111‘]
    request.COOKIES.get(‘username111‘)
    response=render(request,‘index.html‘)
    response=redirect(‘/index/‘)
    #设置cookie,关闭浏览器后就失效
    response.set_cookie(‘key‘,‘value‘)
    return response
 

4. 现在如果关闭浏览器的话,那么用户名和密码还得重新输入。所以我们还需要再完善一下。


res.set_cookie(‘username111‘,u,max_age=10)  设置失效时间为10秒
技术分享

效果:10秒之后,用户名和密码就失效了,从index自动倒退回到login界面

 

Day21-Cookie

标签:说明   end   color   set   direct   获取   dir   eve   lan   

原文地址:http://www.cnblogs.com/momo8238/p/7680917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!