当用户通过认证时,set_Cookie(key, value)

request.Cookie.get(key) 如果key不为空,就说明验证通过,否者重新跳转回login登录页面

对于URL

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^tp1/', views.tp1),
url(r'^user_list', views.user_list),
url(r'^login', views.login),
url(r'^Order/', views.Order.as_view()),
url(r'^index/', views.index)
]

对于views文件

user = {'name':'dacengzi', 'password':123}
def login(request):
if request.method == 'GET': #如果进来的方式是GET,直接跳转
return render(request, 'login.html')
elif request.method == 'POST': #如果是POST,说明用户已经上传
username = request.POST.get('username') #获取用户名
password = int(request.POST.get('password')) #获取密码
current_time = datetime.datetime.utcnow() #当前时间
current_time = current_time + datetime.timedelta(seconds=5) #当前时间推迟5秒 if username == user['name'] and password == user['password']: #如果用户名和密码匹配
req = redirect('/index/') req.set_cookie('correct', username, expires=current_time) #设置Cookie标志位
return req
else:
return render(request, 'login.html')
def auth(func):
def inner(request, *args, **kwargs):
answer = request.COOKIES.get('correct') #接收验证所得的标志位
if not answer: #如果没有收到重新跳转回登录界面
return render(request, 'login.html')
else: # 如果有就执行Order文件
return func(request, *args, **kwargs)
return inner
from django.utils.decorators import method_decorator
from django import views
@method_decorator(auth, name='dispatch') #给dispatch加装饰器,程序一进来就进行验证
class Order(views.View):
def get(self, request):
u = request.COOKIES.get('correct') #获取u,进行传递
return render(request, 'index.html', {'u': u}) def index(request):
return render(request, 'index.html')

对于login文件

<!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">
<input type="text" name="password">
<input type="submit" value="提交">
</form>
</body>
</html>

Django 实现用户认证set_Cookie的更多相关文章

  1. COOKIE与SESSION、Django的用户认证、From表单

    一.COOKIE 与 SESSION 1.简介 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. ...

  2. python 全栈开发,Day79(Django的用户认证组件,分页器)

    一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户 ...

  3. 深入一下Django的用户认证和cache

    深入一下Django的用户认证和cache 用户认证 首先明白一个概念,http协议是无状态的,也就是每一次交互都是独立的,那如何让服务器和客户端进行有状态的交互呢,现在较为常见的方法就是让客户端在发 ...

  4. Django--分页器(paginator)、Django的用户认证、Django的FORM表单

    分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['joh ...

  5. Django自定义用户认证

    自定义一个用户认证 详细参考官方文档: https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#django.contrib.au ...

  6. 【django之用户认证】

    一.auth模块 模块导入 from django.contrib import auth 主要方法如下: 1 .authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般 ...

  7. CMDB资产管理系统开发【day25】:Django 自定义用户认证

    官方文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#substituting-a-custom-user-mode ...

  8. django - 总结 - 用户认证组件

    用户认证组件 from django.contrib import auth 从auth_user表中获取对象,没有返回None,其中密码为密文,使用了加密算法 user = auth.authent ...

  9. Django组件-用户认证

    用户认证 一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1.1 .authenti ...

随机推荐

  1. org.hibernate.hql.QueryExecutionRequestException:org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations【异常】

    springData学习资料 [http://blog.csdn.net/lw_power/article/details/51296353] [JPA报错]org.springframework.w ...

  2. js helper(hsv/hsb转rgb颜色,uuid,金额小写转大写)

    hsv/hsb转rgb颜色 //h:[0,360],s:[0,100],v:[0,100] //return r:[0,256], g:[0,256],b:[0,256] function hsvto ...

  3. margin top 无效

    常出现两种情况: (一)margin-top失效 两个层box1和box2,box1具有浮动属性,box2没有,这时候设置box2的上边距margin-top没有效果. 解决办法: 1.box2增加f ...

  4. POJ3696 The Windy's 【网络流】

    #include<iostream> #include<vector> #include<cstring> #include<algorithm> #i ...

  5. 【DUBBO】dubbo的Directory接口

    集群目录服务Directory, 代表多个Invoker, 可以看成List,它的值可能是动态变化的比如注册中心推送变更.集群选择调用服务时通过目录服务找到所有服务. (1)StaticDirecto ...

  6. Kubernetes基本概念

    Kubernete模型中的核心概念.这些核心概念反映了Kubernetes设计过程中对应用容器集群的认知模型. 集群组件,从架构上看,Kubernetes集群(Cluster)也采用了典型的“主-从” ...

  7. XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 (转)

    XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 前几天安装了xampp for pc 1.7.4版本. 装好后在本地电脑通过https://localhost访问正常. 然后换了台电脑 ...

  8. xunsearch开发流程(三)

    (一).编写项目配置文件 通过创建一个项目文件来创建一个新的项目cd /data/local/xunsearch/sdk/php/apptouch njw.ini文件内容如下 project.name ...

  9. 【JS】if...else 优化形式

    if () {} else {} —— 使用三元操作符/省略大括号{} if(foo){ funcA(); }else{ funcB(); } foo?funcA():funcB(); if(!foo ...

  10. Java 设计模式 之 中介者模式(Mediator)

    中介者的功能非常简单,就是封装对象之间的交互. 如果一个对象的操作会引起其他相关对象的变化,或者是某个操作需要引起其他对象的后续或连带操作,而这个对象又不希望自己来处理这些关系,那么久可以找中介者,把 ...