电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Django 5種類型Session使用方法解析

瀏覽:2日期:2024-10-09 13:51:31

介紹

Session:在計算機中,尤其是在網絡應用中,稱為“會話控制”。Session 對象存儲特定用戶會話所需的屬性及配置信息。這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。

當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web 服務器將自動創建一個 Session 對象。當會話過期或被放棄后,服務器將終止該會話。Session 對象最常見的一個用法就是存儲用戶的首選項。

session是基于cookie完成的,當用戶打開瀏覽器,去訪問服務器的時候,服務器會為每個用戶的瀏覽器創建一個會話對象(session對象),并且為每個session對象創建一個Jsessionid號。當session對象創建成功后,會以cookie的方式將這個Jsessionid號回寫給瀏覽器,當用戶再次進行訪問服務器時,及帶了具有Jsessionid號的cookie數據來一起訪問服務器,服務器通過不同session的 Jsessionid號來找出與其相關聯的session對象,通過不同的session對象來為不同的用戶服務。

使用

Django中默認支持Session,其內部提供了5種類型的Session供開發者使用:

數據庫(默認) 緩存 文件 緩存+數據庫 加密cookie

數據庫Session

Django默認支持Session,并且默認是將Session數據存儲在數據庫中,即:django_session 表中。 a. 配置 settings.py SESSION_ENGINE = ’django.contrib.sessions.backends.db’ # 引擎(默認) SESSION_COOKIE_NAME = 'sessionid' # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串(默認) SESSION_COOKIE_PATH = '/'# Session的cookie保存的路徑(默認) SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默認) SESSION_COOKIE_SECURE = False # 是否Https傳輸cookie(默認) SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸(默認) SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默認) SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否關閉瀏覽器使得Session過期(默認) SESSION_SAVE_EVERY_REQUEST = False # 是否每次請求都保存Session,默認修改之后才保存(默認) b. 使用 def index(request): # 獲取、設置、刪除Session中數據 request.session[’k1’] request.session.get(’k1’,None) request.session[’k1’] = 123 request.session.setdefault(’k1’,123) # 存在則不設置 del request.session[’k1’] # 所有 鍵、值、鍵值對 request.session.keys() request.session.values() request.session.items() # 3.0無下面3個方法 request.session.iterkeys() request.session.itervalues() request.session.iteritems() # 用戶session的隨機字符串 request.session.session_key # 將所有Session失效日期小于當前日期的數據刪除 request.session.clear_expired() # 檢查 用戶session的隨機字符串 在數據庫中是否 request.session.exists('session_key') # 刪除當前用戶的所有Session數據 request.session.delete('session_key') request.session.delete() request.session.flush() request.session.set_expiry(value) * 如果value是個整數,session會在些秒數后失效。 * 如果value是個datatime或timedelta,session就會在這個時間后失效。 * 如果value是0,用戶關閉瀏覽器session就會失效。 * 如果value是None,session會依賴全局session失效策略。

緩存Session

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.cache’ # 引擎SESSION_CACHE_ALIAS = ’default’ # 使用的緩存別名(默認內存緩存,也可以是memcache),此處別名依賴緩存的設置SESSION_COOKIE_NAME = 'sessionid' # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串SESSION_COOKIE_PATH = '/' # Session的cookie保存的路徑SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名SESSION_COOKIE_SECURE = False # 是否Https傳輸cookieSESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否關閉瀏覽器使得Session過期SESSION_SAVE_EVERY_REQUEST = False # 是否每次請求都保存Session,默認修改之后才保存

b. 使用

同上

文件Session

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.file’ # 引擎SESSION_FILE_PATH = None # 緩存文件路徑,如果為None,則使用tempfile模塊獲取一個臨時地址tempfile.gettempdir() #

如:/var/folders/d3/j9tj0gz93dg06bmwxmhh6_xm0000gn/T

SESSION_COOKIE_NAME = 'sessionid' # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串SESSION_COOKIE_PATH = '/' # Session的cookie保存的路徑SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名SESSION_COOKIE_SECURE = False # 是否Https傳輸cookieSESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否關閉瀏覽器使得Session過期SESSION_SAVE_EVERY_REQUEST = False # 是否每次請求都保存Session,默認修改之后才保存

b. 使用

同上

緩存+數據庫Session

數據庫用于做持久化,緩存用于提高效率

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.cached_db’ # 引擎

b. 使用

同上

加密cookie Session

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.signed_cookies’ # 引擎

b. 使用

同上

登錄狀態驗證

def login_status(func): def warp(request,*args,**kwargs): user = request.session.get('username') if user: kwargs['username'] = user return func(request,*args,**kwargs) return redirect(login) return warp

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 番茄畅听邀请码怎么输入 - Dianw8.com | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 伸缩器_伸缩接头_传力接头-巩义市润达管道设备制造有限公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 苹果售后维修点查询,苹果iPhone授权售后维修服务中心 – 修果网 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 船用烟火信号弹-CCS防汛救生圈-船用救生抛绳器(海威救生设备) | 电动手术床,医用护理床,led手术无影灯-曲阜明辉医疗设备有限公司 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 体坛网_体坛+_体坛周报新闻客户端| 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 | 万博士范文网-您身边的范文参考网站Vanbs.com | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 山东成考网-山东成人高考网| 振动传感器,检波器-威海广达勘探仪器有限公司 | 长信科技产业园官网_西安厂房_陕西标准工业厂房 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 |