最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django框架自定義session處理操作示例

 更新時間:2019年05月27日 10:40:08   作者:輕舞肥羊  
這篇文章主要介紹了Django框架自定義session處理操作,結(jié)合實例形式分析了Django框架session操作的原理以及基于session的登陸、驗證等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Django框架自定義session處理操作。分享給大家供大家參考,具體如下:

django有自己的一套session框架,有他自己的機制處理,但這通常是在全新構(gòu)件系統(tǒng)的時候才會用到。如果是一套已有的系統(tǒng),現(xiàn)在重新想用django做成web版的,由于以往的數(shù)據(jù)庫是已經(jīng)設(shè)計好,不能修改其表結(jié)構(gòu),但可以增加表,因為用django必須有django自己的一些系統(tǒng)表,這些是必須添加到原有的數(shù)據(jù)庫中的,我們可以通過 mange.py syncdb 來創(chuàng)建.

| auth_group
| auth_group_permissions
| auth_permission
| auth_user
| auth_user_groups
| auth_user_user_permissions
| blog_content
| django_content_type
| django_session
| django_site

當然,這些表各自有自己的作用,比如django_session 就是用來管理session 的。

如果你用djiango自身的session來管理用戶是否登錄,可以用系統(tǒng)自帶的裝飾方法:@login_required

但如果是你自己在原來的系統(tǒng)上開發(fā),原來的用戶管理肯定不可能是django一樣的。所以得自己寫一個類似@login_required方法來判斷用戶是否已經(jīng)登錄.

假設(shè)有一個user model 是用戶的Class ,并在 models中已經(jīng)定義

class UserID(models.Model):
  login_id=models.CharField(max_length=32)
  login_pwd=models.CharField(max_length=32,blank=False)
  nickname=models.CharField(max_length=50)

登錄的方法

def checklogin(request):
  """ 用戶登錄簡易判斷 """
  try:
    login_id=request.POST.get('user','')
    userpwd=request.POST.get('password','')
    existuser=models.UserID.objects.get(login_id=login_id,login_pwd=userpwd)
    #假設(shè)存在此用戶,就要給session 賦值
    request.session['myuser']=existuser
  except:
    .....

到此為止,自己定義的登錄過程已經(jīng)完成,并且記錄了session值。如果在其他方法需要檢查用戶是否登錄時,如何寫自己的判斷方法呢?

def check_session(func):
  ''' check user session '''
  def wrapper(request,*args, **kv):
    userinfo=request.session.get('myuser',None)
    if not userinfo:
      return HttpResponseRedirect('/login') #沒有登錄,則跳轉(zhuǎn)到登錄頁面
    return func(request,*args, **kv)
  return wrapper

在其他需要檢查用戶是否登錄的views方法上,加上這個裝飾就可以了。

@check_session
def get_all_infomation(request):
  context={}
  context.update(csrf(request))
  ......
  return render_to_response('customer/all_information.html',context)

這樣,如果用戶沒有登錄的話,就會跳轉(zhuǎn)到登錄頁面,用裝飾實現(xiàn)了自己的用戶 session判斷。

當然有人會問,我要注銷登錄怎么處理呢?簡單,django的session其實就是dict.所以可以用如下方法注銷

def logout(request):
  try:
    del request.session['myuser']
  except KeyError:
    pass
  return HttpResponseRedirect('/')

希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python: line=f.readlines()消除line中\(zhòng)n的方法

    python: line=f.readlines()消除line中\(zhòng)n的方法

    這篇文章主要介紹了python: line=f.readlines()消除line中\(zhòng)n的方法,需要的朋友可以參考下
    2018-03-03
  • 一小時學會TensorFlow2之全連接層

    一小時學會TensorFlow2之全連接層

    這篇文章主要介紹了TensorFlow2之全連接層,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • python標識符的用法及注意事項

    python標識符的用法及注意事項

    在本篇文章里小編給大家整理了一篇關(guān)于python標識符的用法及注意事項相關(guān)內(nèi)容,有需要的朋友們可以學習下。
    2021-09-09
  • pytorch cuda上tensor的定義 以及減少cpu的操作詳解

    pytorch cuda上tensor的定義 以及減少cpu的操作詳解

    這篇文章主要介紹了pytorch cuda上tensor的定義 以及減少cpu的操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • FastApi如何快速構(gòu)建一個web項目的實現(xiàn)

    FastApi如何快速構(gòu)建一個web項目的實現(xiàn)

    本文主要介紹了FastApi如何快速構(gòu)建一個web項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 使用python實現(xiàn)哈希表、字典、集合操作

    使用python實現(xiàn)哈希表、字典、集合操作

    這篇文章主要介紹了使用python實現(xiàn)哈希表、字典、集合操作,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Python FastAPI 多參數(shù)傳遞的示例詳解

    Python FastAPI 多參數(shù)傳遞的示例詳解

    這篇文章主要介紹了Python FastAPI 多參數(shù)傳遞,FastAPI通過模板來匹配URL中的參數(shù)列表,大概分為三類方式傳遞參數(shù),每種方式結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • 詳解python中字典的循環(huán)遍歷的兩種方式

    詳解python中字典的循環(huán)遍歷的兩種方式

    本篇文章主要介紹了python中字典的循環(huán)遍歷的兩種方式 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Python性能分析工具pyinstrument提高代碼效率

    Python性能分析工具pyinstrument提高代碼效率

    今天分享一個超級實用的 Python 性能分析工具 pyinstrument ,可以快速找到代碼運行最慢的部分,幫助提高代碼的性能。支持 Python 3.7+ 且能夠分析異步代碼,僅需一條命令即可顯示具體代碼的耗時。經(jīng)常寫 Python 的小伙伴一定要用一下
    2021-09-09
  • Python視頻剪輯Moviepy庫使用教程

    Python視頻剪輯Moviepy庫使用教程

    這篇文章主要為大家介紹了Python視頻剪輯Moviepy庫使用教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論

嵩明县| 宿迁市| 青岛市| 乾安县| 新建县| 封丘县| 平利县| 法库县| 曲麻莱县| 西宁市| 余江县| 义马市| 霍城县| 嘉黎县| 林西县| 郧西县| 安远县| 广州市| 蓝田县| 巨鹿县| 吴桥县| 嵊州市| 绥滨县| 绍兴市| 阳泉市| 淮阳县| 思南县| 信丰县| 黄大仙区| 白城市| 广昌县| 巴林右旗| 锦州市| 南澳县| 日土县| 卢湾区| 甘泉县| 平安县| 苗栗市| 呼和浩特市| 丹江口市|