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

Django用戶認證系統(tǒng) User對象解析

 更新時間:2019年08月02日 09:25:01   作者:再見紫羅蘭  
這篇文章主要介紹了Django用戶認證系統(tǒng) User對象解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下

User對象

User對象是認證系統(tǒng)的核心。用戶對象通常用來代表網(wǎng)站的用戶,并支持例如訪問控制、注冊用戶、關(guān)聯(lián)創(chuàng)建者和內(nèi)容等。在Django認證框架中只有一個用戶類,例如超級用戶('superusers')或('staff')用戶只不過是相同用戶對象設(shè)置了不同屬性而已。

缺省字段Fields

username

用戶名,必需字段。30個字符或更少,可以包含 _, @, +, . 和 - 字符。

first_name

可選。 30 characters or fewer.

last_name

可選。 30 characters or fewer.

email

郵箱,可選。 Email address.

password

密碼,必需。Django不是以明文存儲密碼的,而是存儲哈希值。

groups

用戶組。Many-to-many relationship to Group

user_permissions

用戶權(quán)限。Many-to-many relationship to Permission

groups = models.ManyToManyField(Group, verbose_name=_('groups'),
  blank=True, help_text=_('The groups this user belongs to. A user will '
              'get all permissions granted to each of '
              'their groups.'),
  related_name="user_set", related_query_name="user")
user_permissions = models.ManyToManyField(Permission,
  verbose_name=_('user permissions'), blank=True,
  help_text=_('Specific permissions for this user.'),
  related_name="user_set", related_query_name="user")

is_staff

Boolean。決定用戶是否可以訪問admin管理界面。默認False。

is_active

Boolean。 用戶是否活躍,默認True。一般不刪除用戶,而是將用戶的is_active設(shè)為False。

is_superuser

Boolean。默認False。當設(shè)為True時,用戶獲得全部權(quán)限。

def has_perm(self, perm, obj=None):
  """
  Returns True if the user has the specified permission. This method
  queries all available auth backends, but returns immediately if any
  backend returns True. Thus, a user who has permission from a single
  auth backend is assumed to have permission in general. If an object is
  provided, permissions for this specific object are checked.
  """
 
  # Active superusers have all permissions.
  if self.is_active and self.is_superuser:
    return True
 
  # Otherwise we need to check the backends.
  return _user_has_perm(self, perm, obj)

last_login

上一次的登錄時間,為datetime對象,默認為當時的時間。

user.last_login = timezone.now()

date_joined

用戶創(chuàng)建的時間

方法Methods

is_anonymous()

是否是匿名用戶。

is_authenticated()

用戶是否通過驗證,登陸。

get_full_name()

返回first_name plus the last_name, with a space in between.

get_short_name()

返回first_name.

set_password(raw_password)

設(shè)置密碼。

check_password(raw_password)

驗證密碼。

get_group_permissions(obj=None)

返回用戶組權(quán)限的集合。

get_all_permissions(obj=None)

返回用戶所有的權(quán)限集合。

has_perm(perm, obj=None)

用戶是否具有某個權(quán)限。perm的格式是 "<app label>.<permission codename>".

has_perms(perm_list, obj=None)

用戶是否具有權(quán)限列表中的每個權(quán)限。

創(chuàng)建用戶

由于User對象的密碼不是明文存儲的,所以創(chuàng)建User對象時與通常的Model create不同,需用內(nèi)置的create_user()方法。

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
 
# At this point, user is a User object that has already been saved
# to the database. You can continue to change its attributes
# if you want to change other fields.
>>> user.last_name = 'Lennon'
>>> user.save()

當然也可以在admin界面中添加用戶。

創(chuàng)建superusers

$ python manage.py createsuperuser --username=joe --email=joe@example.com

修改密碼

使用內(nèi)置的set_password()方法。

>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()

驗證用戶

authenticate()

驗證給出的username和password是否是一個有效用戶。如果有效,則返回一個User對象,無效則返回None。

from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
  # the password verified for the user
  if user.is_active:
    print("User is valid, active and authenticated")
  else:
    print("The password is valid, but the account has been disabled!")
else:
  # the authentication system was unable to verify the username and password
  print("The username and password were incorrect.")

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django使用詳解:ORM 的反向查找(related_name)

    Django使用詳解:ORM 的反向查找(related_name)

    今天小編就為大家分享一篇Django使用詳解:ORM 的反向查找(related_name),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python使用for...else跳出雙層嵌套循環(huán)的方法實例

    python使用for...else跳出雙層嵌套循環(huán)的方法實例

    這篇文章主要給大家介紹了關(guān)于python使用for...else跳出雙層嵌套循環(huán)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習或者使用python具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧
    2020-05-05
  • Playwright如何自定義瀏覽器的下載和啟動路徑

    Playwright如何自定義瀏覽器的下載和啟動路徑

    playwright是一個非常有趣的自動化測試工具, 支持Node.js、Python、C# 和 Java語言,下面我們就來看看如何使用Playwright進行自定義瀏覽器的下載和啟動路徑吧
    2025-04-04
  • Python四大模塊文件管理介紹

    Python四大模塊文件管理介紹

    我們可以使用python來操作文件,比如讀取文件內(nèi)容、寫入新的內(nèi)容等,本文主要介紹了Python IO文件管理的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Pycharm debug調(diào)試時帶參數(shù)過程解析

    Pycharm debug調(diào)試時帶參數(shù)過程解析

    這篇文章主要介紹了Pycharm debug調(diào)試時帶參數(shù)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-02-02
  • 使用Python+OpenCV進行卡類型及16位卡號數(shù)字的OCR功能

    使用Python+OpenCV進行卡類型及16位卡號數(shù)字的OCR功能

    本文將使用Python+OpenCV實現(xiàn)模板匹配算法,以自動識別卡的類型和以及16位卡號數(shù)字,通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-08-08
  • 分位數(shù)回歸模型quantile regeression應(yīng)用詳解及示例教程

    分位數(shù)回歸模型quantile regeression應(yīng)用詳解及示例教程

    這篇文章主要為大家介紹了介紹了分位數(shù)回歸quantile regeression的概念詳解及代碼示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 如何解決.cuda()加載用時很長的問題

    如何解決.cuda()加載用時很長的問題

    這篇文章主要介紹了如何解決.cuda()加載用時很長的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 在Python中利用pickle保存變量的實例

    在Python中利用pickle保存變量的實例

    今天小編就為大家分享一篇在Python中利用pickle保存變量的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • git進行版本控制心得詳談

    git進行版本控制心得詳談

    這篇文章主要介紹了git進行版本控制的心得和經(jīng)驗,給并大家總結(jié)了作者的技巧,需要的朋友們參考一下吧。
    2017-12-12

最新評論

大冶市| 淳化县| 桓仁| 多伦县| 霸州市| 卓资县| 吉水县| 青神县| 丽江市| 雷州市| 云梦县| 衡东县| 胶州市| 岳池县| 夏河县| 平阴县| 金阳县| 阿克苏市| 蓝山县| 乳源| 万全县| 肥乡县| 临汾市| 平谷区| 察哈| 加查县| 北海市| 龙南县| 桂林市| 昌邑市| 商都县| 区。| 五家渠市| 丹棱县| 开化县| 尼勒克县| 博客| 花垣县| 宝坻区| 修武县| 耿马|