亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

在Django的session中使用User對象的方法

2020-01-04 17:59:32
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了在Django的session中使用User對象的方法,Django是眾Python web開發框架中人氣最高的一個,需要的朋友可以參考下
 

通過session,我們可以在多次瀏覽器請求中保持數據, 接下來的部分就是用session來處理用戶登錄了。 當然,不能僅憑用戶的一面之詞,我們就相信,所以我們需要認證。

當然了,Django 也提供了工具來處理這樣的常見任務(就像其他常見任務一樣)。 Django 用戶認證系統處理用戶帳號,組,權限以及基于cookie的用戶會話。 這個系統一般被稱為 auth/auth (認證與授權)系統。 這個系統的名稱同時也表明了用戶常見的兩步處理。 我們需要

  •     驗證 (認證) 用戶是否是他所宣稱的用戶(一般通過查詢數據庫驗證其用戶名和密碼)
  •     驗證用戶是否擁有執行某種操作的 授權 (通常會通過檢查一個權限表來確認)
  • 根據這些需求,Django 認證/授權 系統會包含以下的部分:
  •     用戶 : 在網站注冊的人
  •     權限 : 用于標識用戶是否可以執行某種操作的二進制(yes/no)標志
  •     組 :一種可以將標記和權限應用于多個用戶的常用方法
  •     Messages : 向用戶顯示隊列式的系統消息的常用方法

如果你已經用了admin工具(詳見第6章),就會看見這些工具的大部分。如果你在admin工具中編輯過用戶或組,那么實際上你已經編輯過授權系統的數據庫表了。
打開認證支持

像session工具一樣,認證支持也是一個Django應用,放在 django.contrib 中,所以也需要安裝。 與session系統相似,它也是缺省安裝的,但如果它已經被刪除了,通過以下步驟也能重新安裝上:

  •     根據本章早前的部分確認已經安裝了session 框架。 需要確認用戶使用cookie,這樣sesson 框架才能正常使用。
  •     將 'django.contrib.auth' 放在你的 INSTALLED_APPS 設置中,然后運行 manage.py syncdb以創建對應的數據庫表。
  •     確認 SessionMiddleware 后面的 MIDDLEWARE_CLASSES 設置中包含 'django.contrib.auth.middleware.AuthenticationMiddleware' SessionMiddleware。

這樣安裝后,我們就可以在視圖(view)的函數中處理user了。 在視圖中存取users,主要用 request.user ;這個對象表示當前已登錄的用戶。 如果用戶還沒登錄,這就是一個AnonymousUser對象(細節見下)。

你可以很容易地通過 is_authenticated() 方法來判斷一個用戶是否已經登錄了:

?
1
2
3
4
if request.user.is_authenticated():
 # Do something for authenticated users.
else:
 # Do something for anonymous users.

使用User對象

User 實例一般從 request.user ,或是其他下面即將要討論到的方法取得,它有很多屬性和方法。 AnonymousUser 對象模擬了 部分 的接口,但不是全部,在把它當成真正的user對象 使用前,你得檢查一下 user.is_authenticated() 表14-3和14-4分別列出了`` User`` 對象中的屬性(fields)和方法。

在Django的session中使用User對象的方法

 


System Message: ERROR/3 (<string>, line 735)

Error parsing content block for the “table” directive: exactly one table expected.

.. table:: 表 ``User`` 對象方法

復制代碼代碼如下:

 

   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |方法                                                                                         |描述                                                                                                                                                  |
   +=============================================================================================+======================================================================================================================================================+
   |``is_authenticated()``                                                                       |對于真實的User對象,總是返回/ `` True`` 。                                                                                                            |
   |                                                                                             |這是一個分辨用戶是否已被鑒證的方法。 它并不意味著任何權限,也不檢查用戶是否仍是活動的。 它僅說明此用戶已被成功鑒證。                                  |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``is_anonymous()``                                                                           |對于/ `` AnonymousUser`` 對象返回/ `` True`` (對于真實的/ `` User`` 對象返回/ `` False`` )。                                                        |
   |                                                                                             |總的來說,比起這個方法,你應該傾向于使用/ `` is_authenticated()`` 方法。                                                                              |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``get_full_name()``                                                                          |返回/ `` first_name`` 加上/ `` last_name`` ,中間插入一個空格。                                                                                       |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``set_password(passwd)``                                                                     |設定用戶密碼為指定字符串(自動處理成哈希串)。 實際上沒有保存/ ``User``/對象。                                                                        |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |check_password(passwd)                                                                       |如果指定的字符串與用戶密碼匹配則返回/ ``True``/。 比較時會使用密碼哈希表。                                                                            |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``get_group_permissions()``                                                                  |返回一個用戶通過其所屬組獲得的權限字符串列表。                                                                                                        |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``get_all_permissions()``                                                                    |返回一個用戶通過其所屬組以及自身權限所獲得的權限字符串列表。                                                                                          |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``has_perm(perm)``                                                                           |如果用戶有指定的權限,則返回/ `` True`` ,此時/ `` perm`` 的格式是/ `` "package.codename"`` 。如果用戶已不活動,此方法總是返回/ `` False`` 。         |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |has_perms(perm_list)                                                                         |如果用戶擁有/ * 全部* 的指定權限,則返回/ `` True`` 。 如果用戶是不活動的,這個方法總是返回/ `` False`` 。                                            |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``has_module_perms(app_label)``                                                              |如果用戶擁有給定的/ `` app_label`` 中的任何權限,則返回/ `` True`` 。如果用戶已不活動,這個方法總是返回/ `` False`` 。                                |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |get_and_delete_messages()                                                                    |返回一個用戶隊列中的/ `` Message`` 對象列表,并從隊列中將這些消息刪除。                                                                               |
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
   |``email_user(subj, msg)``                                                                    |向用戶發送一封電子郵件。 這封電子郵件是從/ `` DEFAULT_FROM_EMAIL`` 設置的地址發送的。 你還可以傳送一個第三參數:/ `` from_email`` ,以覆蓋電郵中的發送地址。|
   +---------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+

 

最后,`` User`` 對象有兩個many-to-many屬性。 `` groups`` 和`` permissions`` 。正如其他的many-to-many屬性使用的方法一樣,`` User`` 對象可以獲得它們相關的對象:
 

  1. # Set a user's groups: 
  2. myuser.groups = group_list 
  3.  
  4. # Add a user to some groups: 
  5. myuser.groups.add(group1, group2,...) 
  6.  
  7. # Remove a user from some groups: 
  8. myuser.groups.remove(group1, group2,...) 
  9.  
  10. # Remove a user from all groups: 
  11. myuser.groups.clear() 
  12.  
  13. # Permissions work the same way 
  14. myuser.permissions = permission_list 
  15. myuser.permissions.add(permission1, permission2, ...) 
  16. myuser.permissions.remove(permission1, permission2, ...) 
  17. myuser.permissions.clear() 
?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区在线视频| 8x拔播拔播x8国产精品| 国产精品久久久一区| 欧美日韩国产激情| 国产精品69久久| 久久久99免费视频| 成人a在线视频| 国产在线观看不卡| 国产99久久精品一区二区| 欧美电影免费观看高清完整| 欧美综合国产精品久久丁香| 久久久久久亚洲精品中文字幕| 亚洲精品电影网| 日韩在线观看网址| 日韩禁在线播放| 欧美日韩国产在线看| 日韩精品www| 午夜精品一区二区三区在线播放| 欧美日本国产在线| 国产精品黄视频| 欧美激情一级二级| 国产美女精品视频| 日本精品视频在线观看| 亚洲美女福利视频网站| 日韩亚洲欧美中文在线| 日韩电影中文字幕| 欧美激情亚洲激情| 亚洲一区二区三区久久| 91久久精品一区| 粗暴蹂躏中文一区二区三区| 亚洲精品国精品久久99热| 久久久久久国产免费| 国产专区精品视频| 欧美激情国内偷拍| 日韩免费高清在线观看| 欧美激情一区二区三区在线视频观看| 7777精品视频| 久久国产精品久久久久久久久久| 最近中文字幕mv在线一区二区三区四区| 色综合视频网站| 亚洲人成77777在线观看网| 亚洲精品国精品久久99热| 国产在线精品播放| 一区二区在线视频| 欧美日韩国产在线看| 国产一区二区香蕉| 欧美大尺度电影在线观看| 欧美性猛交xxxx乱大交蜜桃| 精品成人乱色一区二区| 久久久久久久一区二区| 久久人人爽人人| 久久琪琪电影院| 日韩中文在线中文网在线观看| 国产福利成人在线| 亚洲激情第一页| 欧美激情中文字幕在线| 亚洲自拍欧美色图| 日韩av在线网址| 欧美亚洲另类视频| 人九九综合九九宗合| 日韩av在线网| 色播久久人人爽人人爽人人片视av| 国产成人短视频| 国产日韩欧美91| 精品综合久久久久久97| 久久99国产精品自在自在app| 中日韩午夜理伦电影免费| 欧美激情喷水视频| 国产精品日韩欧美| 精品久久久精品| 欧洲亚洲女同hd| 亚洲国产小视频在线观看| 欧美日韩成人在线播放| 一本色道久久综合狠狠躁篇怎么玩| 欧美极品xxxx| 欧美日韩国产在线播放| 91久久久久久久久久| 欧美高跟鞋交xxxxhd| 欧洲午夜精品久久久| 成人a免费视频| 亚洲天堂免费观看| 日韩h在线观看| 亚洲精品国产拍免费91在线| 国产一区二区黄| 国产美女91呻吟求| 国产精品流白浆视频| 久久亚洲电影天堂| 精品视频久久久| 精品久久久久久久久久久久| 中文字幕精品网| 2019亚洲日韩新视频| 色视频www在线播放国产成人| 亚洲成年人在线播放| 久久久噜噜噜久久久| 精品亚洲夜色av98在线观看| 日韩视频在线观看免费| 久久影视电视剧免费网站| 成人激情视频小说免费下载| 国产剧情久久久久久| 色婷婷综合成人av| 日韩av网址在线观看| 国产999视频| 日本在线观看天堂男亚洲| 日韩中文字幕精品视频| 久久久久久久网站| 成人欧美一区二区三区在线湿哒哒| 97av在线播放| 91精品中国老女人| 岛国av午夜精品| 日韩av中文在线| 国产精品一区久久久| 亚洲欧洲日产国码av系列天堂| 日韩欧美中文字幕在线播放| 中文字幕亚洲综合久久| 正在播放欧美视频| 91亚洲精华国产精华| 日韩美女免费线视频| 国产欧美中文字幕| 国产91在线高潮白浆在线观看| 日韩成人小视频| 成人久久久久爱| 国内成人精品视频| 国产精品久久久久久久久影视| 亚洲香蕉成人av网站在线观看| 中文字幕成人精品久久不卡| 亚州欧美日韩中文视频| 国产剧情日韩欧美| 亚洲欧美激情在线视频| 色综合天天综合网国产成人网| 国产午夜精品一区二区三区| 国产mv免费观看入口亚洲| 亚洲国产97在线精品一区| 91精品在线一区| 精品久久香蕉国产线看观看亚洲| 亚洲性视频网站| 国模视频一区二区| 国产日韩欧美电影在线观看| 2018日韩中文字幕| 国产精品网站入口| 日韩av在线网址| 日韩av在线一区| 国产亚洲精品高潮| 久久免费成人精品视频| 欧美贵妇videos办公室| 欧美高清视频免费观看| 欧美成人免费大片| 亚洲黄色av女优在线观看| 川上优av一区二区线观看| 日韩精品日韩在线观看| 国产精品精品一区二区三区午夜版| 中文字幕在线视频日韩| 亚洲精品v欧美精品v日韩精品| 午夜精品一区二区三区视频免费看| 91美女片黄在线观| 国产亚洲视频在线| 久99久在线视频| 日韩av理论片| 日韩精品免费在线视频观看| 欧洲美女免费图片一区| 草民午夜欧美限制a级福利片| 国产精品永久免费观看| 日韩的一区二区| 亚洲国产天堂久久国产91| 国产精品丝袜久久久久久高清|