Django使用sessions

购物车是需要会话技术 来支持的:

假设 某网站需要有三个用户 同时访问 ,a用户发出请求,要求把商品a 加入到购物车中,那么如何来识别用户呢,避免将a用户的商品加到b用户的购物车中,可以用会话。

会话技术:服务器⽆法识别每⼀次 HTTP 请求的出处(不知道来⾃于哪个终端),它只会接受到⼀个请求信号,所
以就存在⼀个问题:将⽤户的响应发送给其他⼈,必须有⼀种技术来让服务器知道请求来⾃哪,这就是
会话技术。

会话:就是客户端和服务器之间发⽣的⼀系列连续的请求和响应的过程,打开浏览器进⾏操作到关闭浏
览器的过程。

会话状态:指服务器和浏览器在会话过程中产⽣的状态信息,借助于会话状态,服务器能够把属于同⼀
次会话的⼀系列请求和响应关联起来。

实现会话有两种⽅式:
session(属于服务端)
cookie(属于客户端)

Django 默认开启 session:而且数据库中是有session 表的

INSTALLED_APPS = [
    # 启用 sessions 应用
    'django.contrib.sessions',
]

MIDDLEWARE = [
    # 启用 Session 中间层
    'django.contrib.sessions.middleware.SessionMiddleware',
]

配置session参数:

SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_COOKIE_NAME = "sessionid"
SESSION_COOKIE_PATH = "/"
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_SECURE = False
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_AGE = 43200
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = False

SESSION_ENGINE = ‘django.contrib.sessions.backends.db’ # 指定session引擎

SESSION_COOKIE_NAME = “sessionid” # session在浏览器中存储的名称

SESSION_COOKIE_PATH = “/” # session应用的站点路径,默认为全站

SESSION_COOKIE_DOMAIN = None # session应用的站点域名

SESSION_COOKIE_SECURE = False # session是否只允许在https下存储

SESSION_COOKIE_HTTPONLY = True # 设置为True时js无法获取到内容,这样能有效的防止XSS攻击

SESSION_COOKIE_AGE = 43200 # session生存时间

SESSION_EXPIRE_AT_BROWSER_CLOSE = True # 浏览器关闭时是否清楚session

SESSION_SAVE_EVERY_REQUEST = False # 当有请求进来时重新保存session

使用session:

def testSessions(request):
   # 如果没有session 就为其创建一个
   if not request.session.session_key:
      request.session.create()
   # 向seeeion 中写入数据
   request.session['k1'] = 123
   request.session['c'] = 1
   print(request.session.session_key)
   print(request.session.keys())
   print(request.session.values())
   print(request.session.items())
   return JsonResponse({"aaa":'a'})


def showSession(request):
   print("------------------------------")
   request.session['c'] = 2
   print(request.session.session_key)
   print(request.session.items())
   return JsonResponse({"aaa": 'a'})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值