博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
会话保持及Form表单--cookie、session
阅读量:6137 次
发布时间:2019-06-21

本文共 1786 字,大约阅读时间需要 5 分钟。

 

会话保持--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代码如下:

登录

{% csrf_token %}

用户名:

密码:

urls.py中添加:

path('index/', views.index,name='index'), path('login/', views.login), path('logout/',views.logout,name='logout'),

实现结果如下:

 

转载于:https://www.cnblogs.com/taoge188/p/10540991.html

你可能感兴趣的文章
【手牵手】搭建前端组件库(二)
查看>>
怎么给视频添加音频或配乐
查看>>
怎么转换音乐格式
查看>>
Leaflet-Develop-Guide
查看>>
每隔1s打印0-5
查看>>
Angular6错误 Service: No provider for Renderer2
查看>>
聊聊flink的BlobStoreService
查看>>
洗牌算法具体指的是什么?
查看>>
HBuilder打包手机app的方法
查看>>
解决Mac下SSH闲时自动中断的问题
查看>>
在JavaScript中理解策略模式
查看>>
ArchSummit 深圳 2017 成功举办,探索未来互联网架构
查看>>
不知道如何提升深度学习性能?我们为你整理了这份速查清单
查看>>
Go 2提上日程,官方团队呼吁社区给新特性提案提交反馈
查看>>
技术绩效考量:你们可能都做错了
查看>>
“亲切照料”下的领域驱动设计
查看>>
除了输入法,移动端AI还有哪些想象空间?
查看>>
回家路上想起来关于Js一个有趣的东西
查看>>
B端大数据应用的架构实践与思考
查看>>
2019 SRE 调查报告:事故处理是主要工作,SRE 压力山大
查看>>