Django 使用者認證系統 基本設定

2021-09-11 14:20:08 字數 2023 閱讀 6871

本教程為系列教程,為方便閱讀,每篇教程開頭列出全部教程的目錄索引:

**提供登入、註冊等使用者認證功能是乙個常見的需求。因此,django 提供了一套功能完整的、靈活的、易於拓展的使用者認證系統:django.contrib.auth。在本教程中,我將向你展示 auth 模組的基本用法,例如如何提供使用者註冊、登入、修改密碼、找回密碼等功能;如何拓展 auth 內建的 user 模型;如何自定義使用者驗證後台,以支援使用者使用諸如郵箱手機號等使用者名稱登入(預設只支援使用使用者名稱登入)等等。

推薦新建乙個 django 工程來作為演示或者作為練習,以免把已有的專案搞亂了。本教程的演示專案基於最新版 django 1.11.1 和 python 3.5,不過對於其它的 django 和 python 同樣適用。首先在 python 環境下安裝 django(推薦使用虛擬環境,如何使用虛擬環境可以參考 搭建 django 開發環境。接下來使用 django 提供的命令建立乙個新的工程,我把它命名為 django_auth_example。

$ django-admin startproject django_auth_example複製**
工程建好了,目錄結構如下:

django_auth_example/

manage.py

django_auth_example/

__init__.py

settings.py

urls.py

wsgi.py複製**

django 在新建工程時已經為使用使用者認證系統做好了全部必要的配置。不過有可能你並非使用 django-admin 命令新建的工程,或者你使用的是乙個正在開發中的專案,因此最好再檢查一下 settings.py 檔案中是否已經做好了全部必要配置。

django_auth_example/settings.py

# 其它應用列表...

'django.contrib.auth',

'django.contrib.contenttypes',

]複製**

為了使用使用者認證系統,必須安裝以下兩個應用:

django.contrib.contenttypes 是 auth 模組的使用者許可權處理部分依賴的應用。

其次需要在中介軟體middleware配置裡列出以下兩個中介軟體:

即像下面這樣的配置:

django_auth_example/settings.py

middleware = [

# 其它中間列表...

'django.contrib.sessions.middleware.sessionmiddleware',

'django.contrib.auth.middleware.authenticationmiddleware',

]複製**

如果以上配置沒問題的話就可以正常地使用使用者認證系統了。

即便是目前只使用 django 使用者認證系統的預設特性,推薦的做法也是新建乙個應用,用於存放和使用者功能相關的**,為將來可能的功能拓展做準備。因此讓我們來新建乙個應用,我習慣上把應用命名為 users。

新建的應用一定要記得在 settings.py 裡註冊,否則 django 無法得知你新建了應用。

django_auth_example/settings.py

# 其它應用列表...

'django.contrib.auth',

'django.contrib.contenttypes',

'users', # 註冊新建的應用 users

]複製**

ok,專案的基本準備工作到這裡就結束了,接下來讓我們開始使用 django 使用者系統為我們提供的功能吧!

本教程的示例專案**位於 github:django auth example。

如果遇到問題,請通過下面的方式尋求幫助。

在 pythonzhcn 的 django 版塊 發布問題詳細描述的帖子。

Django 使用者認證系統

二 auth模組 django內建乙個使用者認證系統,使用auth模組實現。auth模組提供了登入 註冊 效驗 修改密碼 登出 驗證使用者是否登入等功能。auth user 使用者表 auth user groups 使用者所屬組的表 auth user user permissions 使用者許可...

Django中的使用者認證系統

auth模組是django提供的標準許可權管 系統,可以提供使用者身份認證,使用者組和許可權管 django 內建了user模型,包含了username,password,email等字段資訊。但是實際使用時,可能會包含一些其他的字段資訊,例如手機號,頭像,簽名資訊等。此時需要在系統的user模型上...

Django預設使用者認證系統

django認證系統位置 django認證系統同時處理認證和授權 django認證系統包含的內容 django認證系統使用者模型類位置 父類abstractuser介紹 建立使用者 註冊使用者 的方法 user user.objects.create user username,email,pass...