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

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

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

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

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

當(dāng)然,這些表各自有自己的作用,比如django_session 就是用來(lái)管理session 的。

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

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

假設(shè)有一個(gè)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):
  """ 用戶登錄簡(jiǎn)易判斷 """
  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值。如果在其他方法需要檢查用戶是否登錄時(shí),如何寫自己的判斷方法呢?

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)到登錄頁(yè)面
    return func(request,*args, **kv)
  return wrapper

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

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

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

當(dāng)然有人會(huì)問,我要注銷登錄怎么處理呢?簡(jiǎn)單,django的session其實(shí)就是dict.所以可以用如下方法注銷

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

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

相關(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
  • 一小時(shí)學(xué)會(huì)TensorFlow2之全連接層

    一小時(shí)學(xué)會(huì)TensorFlow2之全連接層

    這篇文章主要介紹了TensorFlow2之全連接層,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • python標(biāo)識(shí)符的用法及注意事項(xiàng)

    python標(biāo)識(shí)符的用法及注意事項(xiàng)

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

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

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

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

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

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

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

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

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

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

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

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

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

    Python視頻剪輯Moviepy庫(kù)使用教程

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

最新評(píng)論

吉水县| 琼结县| 杭锦后旗| 如东县| 外汇| 奉节县| 文水县| 扶余县| 宜宾市| 卓尼县| 奎屯市| 彩票| 滕州市| 津市市| 云安县| 景泰县| 台北市| 财经| 库尔勒市| 搜索| 镇宁| 建水县| 榆中县| 怀柔区| 柞水县| 武隆县| 集安市| 房山区| 定日县| 衡阳市| 安图县| 陇南市| 永城市| 北川| 万年县| 莱阳市| 乐东| 明溪县| 甘洛县| 邢台县| 鄱阳县|