cookie

from django.shortcuts import render, HttpResponse, redirect

# 此装饰器的作用就是讲所有没有cookie验证的页面都需要验证后方可跳转
def login_required(fun):
def inner(request, *args, **kwargs):
if not request.COOKIES.get('is_login') == '':
next = request.path_info
print('next', next)
return redirect('/login/?next={}'.format(next)) # 如果没有cookie,就需要跳转登录页面,但是将此页面的路径拼接到url上
ret = fun(request, *args, **kwargs)
return ret return inner def login(request):
if request.method == 'POST':
print(request.get_full_path())
user = request.POST.get('user')
pwd = request.POST.get('pwd')
if user == '' and pwd == '':
next = request.GET.get('next')
if next:
ret = redirect(next)
else:
ret = redirect('/index/')
ret.set_cookie('is_login', '', max_age=5) # 设置cookie {"is_login": '1'} 存储方式为键值对, max_age = 设置过期时间
return ret
return render(request, 'login.html') @login_required
def index(request):
return render(request, 'index.html') @login_required
def logout(request):
ret = redirect('/login/')
ret.delete_cookie('is_login') # 删除cookie
return ret @login_required
def home(request):
return HttpResponse('这是home页面')

sesson

from django.shortcuts import render, HttpResponse, redirect

# 此装饰器的作用就是讲所有没有session验证的页面都需要验证后方可跳转
def login_required(fn):
def inner(request, *args, **kwargs):
if not request.session.get('is_login') == '':
next = request.path_info
return redirect('/login/?next={}'.format(next))
ret = fn(request, *args, **kwargs)
return ret return inner def login(request):
if request.method == 'POST':
user = request.POST.get('user')
pwd = request.POST.get('pwd')
if user == '' and pwd == '':
next = request.GET.get('next')
if next:
ret = redirect(next)
else:
ret = redirect('/index/')
request.session['is_login'] = '' # 设置session
request.session.set_expiry(5) # 设置超时间
return ret
return render(request, 'login.html') @login_required
def home(request):
return HttpResponse('这是home页面') @login_required
def index(request):
print(request.session.session_key) # 获取django_session表中的键
print(request.session.exists('vlqc57dhhm9jiy12c70zyii6bnit6xcv'))
return render(request, 'index.html') def logout(request):
# request.session.delete()
request.session.flush() # 删除该用户的所有数据,删除cookie
ret = redirect('/login/')
return ret

Django中的cookie和session实现的更多相关文章

  1. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  2. Django 中的 cookie 和 session

    一.cookie 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新的 ...

  3. django中操作cookie与session

    cookie 什么是Cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息. Cookie的 ...

  4. Django中的Cookie、Session、Token

    Cookie : 指望着为了辨别用户身份.进行会话跟踪而存储在用户本地的数据(通常经过加密),是由服务端生成,发送给客户端浏览器,浏览器会将Cookie以key/value保存,下一请求同一网站是就发 ...

  5. Django中的cookie与session

    cookie与session的实现原理 HTTP被设计为”无状态”,每次请求都处于相同的空间中. 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来 ...

  6. Django中的cookie和session

    前言 HTTP协议 是短连接.且状态的,所以在客户端向服务端发起请求后,服务端在响应头 加入cokie响应给浏览器,以此记录客户端状态: cook是来自服务端,保存在浏览器的键值对,主要应用于用户登录 ...

  7. 【转】Django中的cookie与session

    转自:https://www.cnblogs.com/chenchao1990/p/5283725.html cookie与session的实现原理 HTTP被设计为”无状态”,每次请求都处于相同的空 ...

  8. 如何使用django中的cookie和session?

    1.Cookie 介绍 Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Co ...

  9. Django中的Cookie和Session操作以及CBV

    1.Cookie 平常我们在浏览网页的时候,在需要输入密码的地方,如果已经登陆了一次,并且时间间隔比较近的话,是不需要登陆的,为什么了?这就是Cookie的作用. Cookie(或Cookies)指某 ...

  10. python Django中的cookie和session

    目录 Cookie 1.1获取Cookie 1.2设置Cookie Session 1.数据库Session 2.缓存Session 3.文件Session 4.缓存+数据库Session Cooki ...

随机推荐

  1. 学习swift从青铜到王者之swift闭包06

    语法表达式 一般形式:{ (parameters) -> returnType in statements } 这里的参数(parameters),可以是in-out(输入输出参数),但不能设定 ...

  2. USB多重系統 - 開機碟工具 – WinSetupFromUSB

    WinSetupFromUSB下載與安裝 讓USB磁碟擁有多重開機的功能,WinSetupFromUSB有著提軟體和硬體的高相容性. [官方網頁]:http://www.winsetupfromusb ...

  3. Notification发送通知

    今天学习并測试了Notification组件,这个组件在应用中也经经常使用到.在这里写了一个简单的Demo. Notification是显示在状态栏的消息----位于手机屏幕的最上方. 程序一般通过N ...

  4. Sql Server 导入还有一个数据库中的表数据

    在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management ...

  5. 挖掘更合适的MVP模式的架构设计

        关于MVP,关于android,不得不说这篇博客已经来的非常晚了,这篇博客早就想写了,一直都在偷懒,就不给自己这么久的偷懒找借口了.尽管这篇文章po出来的比較晚.可是我所接触的程序猿一些朋友之 ...

  6. adb端口被占用情况下如何杀掉进程

    1.CMD命令窗口输入:adb nodaemon server .然后就会提示你哪个端口被占用了. 2.输入netstat -ano | findstr "5037" .然后会弹出 ...

  7. 【iOS系列】-UIWebView加载网页禁止左右滑动

    [iOS系列]-UIWebView加载网页禁止左右滑动 问题: 做项目时候,用UIWebView加载网页的时候,要求是和微信网页中打开的网页的效果一样,也即是只能上下滑动,不能左右滑动,也不能缩放. ...

  8. 【iOS系列】-UIImageView帧动画相关属性介绍

    UIImageView帧动画相关属性介绍 1:相关属性: //An array of UIImage objects to use for an animation.存放UIImage对象,会按顺序显 ...

  9. iPhone开发关于UDID和UUID的一些理解【转】

    原文地址:http://blog.csdn.net/xunyn/article/details/13629071 一.UDID(Unique Device Identifier) UDID是Uniqu ...

  10. ASP.NET for WebApi

    WebApi,听说过吧?呵呵. 感觉比WebService,WCF要强.尤其是那个啥WCF,啥鬼东西,真难懂.真难搞.真难用. 说比WebService要强,是因为不用在本地先生成个代理.而且XML也 ...