Django框架的使用教程--Cookie-Session[五]

Cookie

cookie是存储在浏览器中的一段文本信息,下次同一网站请求,就会发送该cookie给服务器,一般的浏览器都有启动cookie,用cookie存储信息,最好不要存储密码,cookie也有大小

cookie特点

cookie以键值对格式进行存储信息

不同的cookie不能进行相互的访问

访问某个网站时,会将某个网站在浏览器保存的信息提交到服务器

设置Cookie

读取Cookie

视图函数

def get_cookie(request):
    cookie = request.COOKIES.get('gaidy')
    print(cookie)
    return HttpResponse('读取成功')

运行结果

Session

Seesion就是服务器端开辟的一块内存空间,存放着客户端浏览器窗口的编号,通cookie一样也是用来记录用户的状态,比cookies简单。存放方式依然是键值对的形式存放。

Django默认启用session

在apps中安装session应用

数据库中有一个django_session的表(表的结构字段有键,值,过期时间)

数据库

安装redis数据库扩展

pip install django_redis

设置本地缓存(项目工程settings设置)

SESSION_ENGINE='django.contrib.sessions.backends.cache'

混合存储

SESSION_ENGINE='django.contrib.sessions.backends.cached_db'

配置redis连接

import django_redis

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

Session的操作

def set_session(request):
    # 设置session的键值
    request.session['gaidy'] = 25
    # 根据键读取值
    name = request.session.get('gaidy')
    print(name)
    # 清楚所有的session
    request.session.flush()
    name1 = request.session.get('gaidy')
    print(name1)

    return HttpResponse('ok')

 

1.设置session

request.session['']=值

2.根据键读值

request.session.get('',默认值)

3.清楚所有的session,在存储中删除值部分

request.session.clear()

4.清空session数据

request.session.flush()

5.删除session中的指定键及值,在存储中只删除某个键及对应的值。

del request.session['']

6.设置session的有效期

request.session.set_expiry(value)
  • 如果value是一个整数,session将在value秒没有活动后过期。
  • 如果value为0,那么用户session的Cookie将在用户的浏览器关闭时过期。
  • 如果value为None,那么session有效期将采用系统默认值,默认为两周,可以通过在settings.py中设置SESSION_COOKIE_AGE来设置全局默认值。

 

猜你喜欢

转载自www.cnblogs.com/gaidy/p/9255771.html