<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## **一、Session介紹** 1. `session`與`cookie`對比 1. `cookie`是在瀏覽器端保存鍵值對數據,而`session`是在服務器端保存鍵值對數據 2. 重要敏感的數據(銀行卡賬號,驗證碼,余額等),建議存儲在服務器端,不能通過cookie保存到瀏覽器 3. `session`的使用依賴`cookie` 2. Django中`session`數據的保存 * 不同的用戶使用各自不同的瀏覽器,可以認為:一個瀏覽器代表一個用戶 * 【重要】表中一條記錄,保存著一個瀏覽器(用戶)所有的session鍵值對數據 * 【重要】`sessionid`是什么: 瀏覽器標識(用戶標識),代表著一個用戶,**通過`sessionid`可以找到該用戶所有的session鍵值對數據** ## **二、Session使用** 1. 開啟session功能【默認已經開啟】 django封裝了`session`模塊,用來簡化`session`數據操作。請參見`settings.py`配置文件中session配置: ~~~ INSTALLED_APPS = [ ... # 默認導入了django自帶的session模塊 'django.contrib.sessions', ] MIDDLEWARE = [ ... # 開啟session中間件 'django.contrib.sessions.middleware.SessionMiddleware', ] ~~~ 2. **生成django項目默認的數據庫表** 1. `session`數據默認保存在django項目的一張數據庫表中(表名為:`django_session`) 2. **在保存session數據庫前,需要先生成django項目默認的數據庫表** 3. 如何生成: 打開終端,并進入到項目根目錄下,再執行以下2個命令生成數據庫表: ~~~ python manage.py makemigrations python manage.py migrate ~~~ 3. session數據操作 `request.session屬性`:類型為`django.contrib.sessions.backends.db.SessionStore` * 保存session數據(**鍵值對**) ~~~ request.session['鍵']=值 ~~~ * 讀取session數據 ~~~ request.session.get('鍵', 默認值) ~~~ * 刪除命令 ~~~ # 刪除一個sessoin鍵值對(注意:鍵不存在會報錯 `KeyError`) del request.session['鍵'] # 清除當前訪問用戶所有的session數據 request.session.flush() # 刪除一條表記錄 request.session.clear() # 清空字段中的session鍵值對數據 ~~~ * 設置session數據有效時間;**如果不設置,默認過期時間為兩周** ~~~ request.session.set_expiry(value) ~~~ * 如果value是一個整數,則 session數據 將在value秒沒有活動后過期 * 如果value為0,則 session數據 將在用戶**關閉瀏覽器時過期** * 如果value為None,則 session數據 將在**2周后過期** ## **三、測試** * 需求: * 使用session保存 登錄用戶名 和 驗證碼: * 訪問`http://127.0.0.1:8000/set_session`界面時,保存session數據 * 訪問`http://127.0.0.1:8000/get_session`界面時,讀取session數據 * 實現參考 ~~~ # url配置 url(r'^set_session$', views.set_session), url(r'^get_session$', views.get_session), # 視圖函數 def set_session(request): """保存session鍵值對數據""" request.session['user_id'] = 10 request.session['user_name'] = 'admin' return HttpResponse('保存session成功') def get_session(request): """讀取session鍵值對數據""" user_id = request.session.get('user_id') user_name = request.session.get('user_name') text = 'user_id = %s, user_name = %s' % (user_id, user_name) return HttpResponse(text) ~~~ ## 四、保存session到redis中 使用第三方包`django-redis`實現\*\* 1. 在虛擬環境下安裝包 ~~~ pip install django-redis==4.8.0 ~~~ 2. 修改`settings.py`文件,新增如下選項: ~~~ # django項目的緩存配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "" } } } # session數據緩存到Redis中 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default" ~~~ 3. 測試:**啟動Redis服務器**,登錄一次,再查看session是否有保存到 redis 1號數據庫中
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看