首页 > 其他分享 >session

session

时间:2023-02-07 21:48:19浏览次数:34  
标签:return get request session user app02

目录

介绍

session是基于cookie实现的,为什么有session,cookie是不安全的,session是将数据存到服务器,生成一把钥匙作为cookie返回给客户端,session Django框架已经实现完成使用起来非常方便,他可以将一些数据写到session中,不光可以做登录验证,详情见代码

写session

def login(request):

    if request.method == "GET":
        return render(request,"app02/login.html")

    else:
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")
        try:
            user_pwd = User.objects.get(user=user,pwd=pwd)
            # 写session
            # 在这做三件事情
            # 1 创建随机字符串
            # 2 将随机字符串 作为session-key 将字符串作为session-data插入到Django-session表中
            # 3 将session-ID和随机字符串组成键值对作为cookie返回给客户端
            request.session["user_id"] = user_pwd.pk # 这一行代码就完成啦 写session操作
            return redirect("/app02/index/")
        except Exception as e:
            return redirect("/app02/login/")

读session

def index(request):

    # 读session
    # 1 首先取session的钥匙
    # 2 取Django-session表中查符合的数据
    # 3 将取出的session-data数据
    user_id = request.session.get("user_id") # 可以直接读session-data内容
    if user_id:
        username = User.objects.get(pk=user_id).user

        return render(request,"app02/index.html",{'user':username})
    else:
        return redirect("/app02/login/")

记录上次访问的时间

def last_time(request):
    last_time = request.session.get("time","第一次访问")
    now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    request.session["time"] = now
    return render(request,"session/shop.html",{"time":last_time})

删除session

def logout(request):
    # 删除改钥匙的整条记录
    # request.session.flush()

    # 删除某一个value

    del request.session["user_id"]
    return redirect("/app02/login/")

标签:return,get,request,session,user,app02
From: https://www.cnblogs.com/py-zhq/p/17099883.html

相关文章

  • java.lang.SecurityException: Access to default session denied
    {exception=java.lang.SecurityException:Accesstodefaultsessiondenied}java.lang.SecurityException:Accesstodefaultsessiondeniedat......
  • Python requests.Session 协程 下载文件
    Pythonrequests.Session协程下载文件 #coding:utf-8fromgeventimportmonkeymonkey.patch_all()fromgevent.poolimportPoolimportgeventimportrequ......
  • Redis实战之session共享
    当线上集群时候,会出现session共享问题。虽然Tomcat提供了sessioncopy的功能,但是缺点比较明显:1:当Tomcat多的时候,session需要大量同步到多台集群上,占用内网宽带2:同一个用户se......
  • Redis实战之session共享
    当线上集群时候,会出现session共享问题。虽然Tomcat提供了sessioncopy的功能,但是缺点比较明显:1:当Tomcat多的时候,session需要大量同步到多台集群上,占用内网宽带2:同一个用......
  • 多线程事务回滚sqlSession, spring-mybatis 开启事务
    @ResourceSqlContextsqlContext;/***多线程事务.*@paramemployeeDOList*/@OverridepublicvoidsaveThread(List<EmployeeDO>employeeDOList)throwsSQL......
  • 注册案例[session]
    注册功能:保存用户信息到数据库验证码功能:展示验证码:展示验证码图片,并可以点击切换校验验证码:验证码填写不正确,则注册失败注册案例--校验验证码判断程序生成的验证码和......
  • Session 基本使用
    Session基本使用服务端会话跟踪技术:将数据保存到服务端JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能使用:获取Session对象HttpSessionsession=......
  • Python3网络爬虫教程6——cookie & session(cookie的属性,保存及模块的使用)
    Python全栈工程师核心面试300问深入解析(2020版)----全文预览Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅上接:Python3网络爬虫教程5——ProxyHa......
  • 会话技术Session快速入门与Session原理分析
    ##Session:1.概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中.HttpSession2.快速入门:1.获取HttpSession对象:......
  • 负载均衡情况下,session会话保持不起作用
    有一次在配置了负载均衡会话保持,同一个人被分配到了其他服务器,导致session时好时坏,可以使用redis保存sessionhttps://www.cnblogs.com/leezhxing/p/4128204.html ......