免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
django之session

與cookie不同的是,session是服務器技術,把數(shù)據(jù)存在服務器上

 

 

保存登陸狀態(tài)信息和上次登陸時間

def login_session(request):    if request.method == 'POST':        user = request.POST.get('user')        pwd = request.POST.get('pwd')        user = UserInfo.objects.filter(user=user, pwd=pwd).first()        if user:            request.session['is_login'] = True            request.session['username'] = user.user            import datetime            now = datetime.datetime.now().strftime('%Y-%m-%d %X')  # 記錄上次登陸login-session的時間            request.session['last_visit_time'] = now            '''            1.生成一個隨機字符串  5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog            2.response.set_cookie('sessionid',5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog            3.在django_session表中創(chuàng)建一條記錄:                        session-key                                 session-data                5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog    {'is_login':True,'username':edward}            '''            return HttpResponse('登陸成功 ')    return render(request, 'login.html')def index_session(request):    # print('login',request.session['is_login'])   找不到會報錯 print('login', request.session.get('is_login'))  # 找不到不會報錯    '''    1. request.COOKIE.get('session')         2. django-session表中過濾記錄:               session-key                               session-data    5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog    {'is_login':True,'username':edward}        obj = django-session.objects.filter(session-key=5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog).first        3. obj.session-data.get('is_login')    '''    is_login = request.session.get('is_login')    if not is_login:        return redirect('/login-session/')    username = request.session.get('username')    last_visit_time = request.session.get('last_visit_time')    return render(request, 'index.html', {'username': username, 'last_visit_time': last_visit_time})

 

session的更新操作

一個服務器和一個瀏覽器只用一個session_key來維持,如果更新了賬號密碼,不會創(chuàng)建新的session_key,只會更新session_key對應的session_data。

'''if request.COOKIE.get('sessionid'):    更新    在django-session表中更新一條記錄:        session-key                                 session-data    5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog                    更新else:    1.生成一個隨機字符串  5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog    2.response.set_cookie('sessionid',5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog    3.在django_session表中創(chuàng)建一條記錄:        session-key                                 session-data    5j1d3jrfmjbnblnm3fz1fqfdmxi2vjog    {'is_login':True,'username':edward}            '''

 

session的注銷功能與session的配置參數(shù)

注銷

 

def login_out(request):    # del request.session['is_login']  # 只刪除了一個鍵值,我們要做的是刪除整條記錄    request.session.flush()    '''    flush()做的三個操作        1.random_str = request.COOKIE.get("sessionid")        2.django-session.objects.filter(session-key=random_str).delete()        3.response.delete_cookie("sessionid",path="/",random_str)   把cookie也刪了    '''    return redirect('/login/')

 

html

<a href="/login-out">注銷 </a>

 

配置參數(shù)

django默認支持Session,并且默認是將Session數(shù)據(jù)存儲在數(shù)據(jù)庫中,即: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,默認修改之后才保存(默認)  如果設置為True了,每次訪問都會往后推一天

 

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Django 簡單實現(xiàn)登錄界面
django基礎二
應用技巧:如何基于Python Django實現(xiàn)驗證碼登錄功能?
Django實戰(zhàn)
Django認證系統(tǒng)并不雞肋反而很重要
python測試開發(fā)django-43.session機制(登錄/注銷)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服