cookie实现用户登录验证

cookie实现用户登录验证

1,

INSTALLED_APPS中注册app03

2,在主程序中新建映射关系到app3的url中
1 from django.conf.urls import url,include#引入include模块
2 from django.contrib import admin
3 
4 urlpatterns = [
5     url(r'^admin/', admin.site.urls),
6     url(r'^a/', include("app1.urls")),
7     url(r'^b/', include("app2.urls")),
8     url(r'^c/', include("app3.urls")),
9 ]

3.视图函数

user_info = {
    'asd': {'pwd': "123123"},
    'qwe': {'pwd': "666123"},
}


def login(request):
    if request.method == "GET":
        return render(request, 'test3login.html')  # 用户请求方式为get时,返回test3login.html信息
    if request.method == "POST":  # 如果用户为post请求时,获取用户数据
        u = request.POST.get('username')
        p = request.POST.get('pwd')
        dic = user_info.get(u)

        if not dic:
            return render(request, 'test3login.html')
        if dic['pwd'] == p:
            res = redirect('/c/test3/')
            res.set_cookie('username111')
            # res.set_cookie('username111',u,max_age=10)
            # import datetime
            # current_date = datetime.datetime.utcnow()
            # current_date = current_date + datetime.timedelta(seconds=5)
            # res.set_cookie('username111',u,expires=current_date)
            res.set_cookie('username111', u)
            res.set_cookie('user_type', "f", httponly=True)
            return res
        else:
            return render(request, 'test3login.html')


def index(reqeust):
    # 获取当前已经登录的用户
    v = reqeust.COOKIES.get('username111')
    
    return render(reqeust,'index.html',{'current_user': v})

 4,test3login.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <form method="post" action="/c/test2/">
 9     <input type="text" name="username" placeholder="用户名">
10     <input type="password" name="pwd" placeholder="密码">
11     <input type="submit">
12 </form>
13 </body>
14 </html>

5,index.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <h1>欢迎登录:{{ current_user }}</h1>
 9 </body>
10 </html>

 

posted @ 2018-02-01 22:59  cerofang  阅读(828)  评论(0编辑  收藏  举报