会话保持--cookie、session
实例1:使用cookie让浏览器记录用户登录次数
view.py代码如下:
def index(request): #会话保持cookie #获取浏览器的cookie num = request.COOKIES.get('num') if num: num = str(int(num)+1) else: num = 1 response=render(request,'teacher/index.html',context={ 'num':num }) #设置cookie response.set_cookie('num',num,max_age=20) #max_age保存多少秒,整数,expiry设置过期时间 return response
index.html代码如下:
我是第 { { num }}次访问
结果展示如下:
2.session会话保持
在项目的setting.py中注册
INSTALLED_APPS = [ 'django.contrib.sessions', #这两个都是session需要用到的]MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware',]
添加上以后还需要进行数据迁移,如果默认存在上面,以前做数据迁移的时候已经做了,不需要重复做,django 默认启动session.
django数据保存在django_session表中
session方法:
实例二:session技术依赖于cookie技术。使用session实现客户端的登录与登出
view.py代码如下:
def index(request):#会话保持session name = request.session.get('name') return render(request,'teacher/index.html',context={ 'name':name})def login(request): if request.method == 'POST': username = request.POST.get('username','') password = request.POST.get('password','') if username == 'xinlian' and password == '111': request.session['name']=username request.session.set_expiry(10) #设置过期时间 return redirect(reverse('teacher:index')) return render(request,'teacher/login.html')
def logout(request): request.session.flush() return redirect(reverse('teacher:index'))
index.html代码如下:
用户名:{ { name|default:"未登录" }} 安全退出
login.html代码如下:
登录
urls.py中添加:
path('index/', views.index,name='index'), path('login/', views.login), path('logout/',views.logout,name='logout'),
实现结果如下: