欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django自帶用戶認(rèn)證系統(tǒng)使用方法解析

 更新時(shí)間:2020年11月12日 09:42:44   作者:yoyo008  
這篇文章主要介紹了Django自帶用戶認(rèn)證系統(tǒng)使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Django自帶用戶認(rèn)證系統(tǒng),這個(gè)系統(tǒng)支持訪問控制、注冊用戶、關(guān)聯(lián)創(chuàng)建者和內(nèi)容等;在開發(fā)用戶認(rèn)證功能時(shí)的時(shí)候,可以使用django中的django.contrib.auth 中封裝了注冊、認(rèn)證,登錄登出方法,可以直接使用;

相關(guān)表

在使用"python manage.py makemigrationss"和"python manage.py migrate"遷移完成數(shù)據(jù)庫之后

根據(jù)配置文件settings.py中的數(shù)據(jù)庫段生成的數(shù)據(jù)表中已經(jīng)包含了6張進(jìn)行認(rèn)證的數(shù)據(jù)表,分別是

  • auth_user
  • auth_group
  • auth_group_permissions
  • auth_permission
  • auth_user_groups
  • auth_user_user_permissions

自帶用戶認(rèn)證系統(tǒng),進(jìn)行用戶認(rèn)證的數(shù)據(jù)表為auth_user(用戶的數(shù)據(jù)保存在這個(gè)表里)

一、登陸功能:

authenticate():提供了用戶認(rèn)證,即驗(yàn)證用戶名以及密碼是否正確,一般需要username和password兩個(gè)關(guān)鍵字參數(shù)

如果通過認(rèn)證,authenticate()函數(shù)會返回一個(gè)User對象。當(dāng)我們試圖登陸一個(gè)從數(shù)據(jù)庫中直接取出來不經(jīng)過authenticate()的User對象時(shí)會報(bào)錯(cuò)。

1.登陸 auth.authenticate(username=name值, password=password值)

2.驗(yàn)證用戶名和密碼 auth.login(request, user) 這個(gè)函數(shù)使用Django的session框架給某個(gè)已認(rèn)證的用戶附加上session_id信息。

from django.shortcuts import render,redirect,HttpResponse
from django.contrib.auth import authenticate,login
def auth_view(request):
   username=request.POST.GET("usernmae") # 獲取用戶名
   password=request.POST.GET("password") # 獲取用戶的密碼
   user=authenticate(username=username,password=password) # 驗(yàn)證用戶名和密碼,返回用戶對象
   if user:   # 如果用戶對象存在
     login(request,user)  # 用戶登陸
     return redirect("/index/")
   else:
     return HttpResponse("用戶名或密碼錯(cuò)誤")

當(dāng)用戶登陸成功時(shí),會生成一個(gè)sessionid保存在cookies中,可以在數(shù)據(jù)庫django_session中查看,當(dāng)用戶訪問其他頁面時(shí),可以通過sessionid判斷用戶是否已經(jīng)登陸。

二、注冊功能

django自帶User模型,導(dǎo)入方法:from django.contrib.auth.models import User

User是auth模塊中維護(hù)用戶信息的關(guān)系模式,在數(shù)據(jù)庫中被命名為auth_user,使用migrate會自動生成.

user對象

User對象屬性:username,password為必填項(xiàng)

password用哈希算法保存到數(shù)據(jù)庫中

  • is_staff:判斷用戶是否擁有網(wǎng)站的管理權(quán)限
  • is_active:判斷是否允許用戶登陸,設(shè)置為“False”時(shí)可以不用刪除用戶來禁止用戶登陸

用create_user輔助函數(shù)創(chuàng)建用戶

a、create_user創(chuàng)建用戶

create_user是django封裝好的用于創(chuàng)建用戶的方法(注意使用該方法注冊的用戶才能處理密碼明文存密文到數(shù)據(jù)庫的問題),

創(chuàng)建方法:User.objects.create_user(username=name, password=password)此處的User是django中自帶的User模型from django.contrib.auth.models import User

def regist(request):
name = request.POST.get('name')
password = request.POST.get('password')
User.objects.create_user(username=name, password=password)

三、退出登陸auth.logout(request)

這個(gè)函數(shù)接受一個(gè)HttpResponse對象,無返回值。當(dāng)調(diào)用該函數(shù)時(shí),當(dāng)前請求的session信息全部被清除。即使當(dāng)前用戶沒有登陸,調(diào)用該函數(shù)也不會報(bào)錯(cuò)。

def logout(request):
if request.method == 'GET':
auth.logout(request)

四、登陸態(tài)驗(yàn)證

login_required() 若在訪問某頁面時(shí),需要確認(rèn)用戶登陸成功才能訪問,可以在url中用login_required方法進(jìn)行驗(yàn)證,如果登陸成功就執(zhí)行,如果用戶未登陸,自動跳轉(zhuǎn)登陸頁面。

a.login_requierd()裝飾器

配置跳轉(zhuǎn)路徑,,當(dāng)用戶未登陸訪問其他頁面時(shí),自動跳轉(zhuǎn)到指定的url

url(r'^index/', login_required(views.index)),
url(r'^addstu/', login_required(views.addStu), name='astu'),
url(r'^stupage/', login_required(views.stuPage)),

值得注意的是,一旦加上login_required方法,在用戶未登陸時(shí)訪問頁面會出現(xiàn)如下的404錯(cuò)誤,所需還需要在setting.py進(jìn)行配置LOGIN_URL。

user對象的login_requierd()裝飾器

配置跳轉(zhuǎn)路徑,當(dāng)用戶未登陸訪問其他頁面時(shí),自動跳轉(zhuǎn)到登陸頁面

LOGIN_URL = '/login/'

裝飾器也可以加到view方法前

from django.contrib.auth.decorators import login_required
  @login_required
  def views(request):
    pass

五、修改存儲自定義認(rèn)證中的User表

用戶也可以不使用自帶用戶認(rèn)證系統(tǒng)默認(rèn)的數(shù)據(jù)表auth_user,通過以下方式可以將用戶數(shù)據(jù)保存到自己定義的表中

from django.contrib.auth.models import User
class UserProfile(models.Model):
  user = models.OneToOneField(User,on_delete=models.CASCADE) # django自帶用戶表User模塊和自定義的用戶關(guān)聯(lián)
  name = models.CharField(max_length=32)
  def __str__(self):
    return self.name

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

相關(guān)文章

  • 如何基于Python Matplotlib實(shí)現(xiàn)網(wǎng)格動畫

    如何基于Python Matplotlib實(shí)現(xiàn)網(wǎng)格動畫

    這篇文章主要介紹了如何基于Python Matplotlib實(shí)現(xiàn)網(wǎng)格動畫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python pandas遍歷行數(shù)據(jù)的2種方法小結(jié)

    Python pandas遍歷行數(shù)據(jù)的2種方法小結(jié)

    pandas在數(shù)據(jù)處理過程中,除了對整列字段進(jìn)行處理之外,有時(shí)還需求對每一行進(jìn)行遍歷,本文就來介紹Python pandas遍歷行數(shù)據(jù)的2種方法小結(jié),感興趣的可以了解一下
    2024-03-03
  • Python實(shí)現(xiàn)購物車購物小程序

    Python實(shí)現(xiàn)購物車購物小程序

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)購物車購物小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python使用ThreadPoolExecutor一次開啟多個(gè)線程

    Python使用ThreadPoolExecutor一次開啟多個(gè)線程

    通過使用ThreadPoolExecutor,您可以同時(shí)開啟多個(gè)線程,從而提高程序的并發(fā)性能,本文就來介紹一下Python使用ThreadPoolExecutor一次開啟多個(gè)線程,感興趣的可以了解一下
    2023-11-11
  • 基于Python+QT的gui程序開發(fā)實(shí)現(xiàn)

    基于Python+QT的gui程序開發(fā)實(shí)現(xiàn)

    這篇文章主要介紹了基于Python+QT的gui程序開發(fā)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python使用tkinter制作在線翻譯軟件

    Python使用tkinter制作在線翻譯軟件

    這篇文章主要為大家詳細(xì)介紹了Python使用tkinter制作在線翻譯軟件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • Python處理缺失數(shù)據(jù)的多種方式

    Python處理缺失數(shù)據(jù)的多種方式

    在數(shù)據(jù)分析和數(shù)據(jù)處理的過程中,缺失數(shù)據(jù)(Missing Data)是一個(gè)常見的問題,缺失數(shù)據(jù)的存在可能會影響模型的準(zhǔn)確性和預(yù)測的可靠性,因此正確處理缺失數(shù)據(jù)是數(shù)據(jù)分析的重要步驟,所以本文給大家介紹了Python處理缺失數(shù)據(jù)的多種方式,需要的朋友可以參考下
    2024-08-08
  • python?OpenCV圖像直方圖處理

    python?OpenCV圖像直方圖處理

    這篇文章主要介紹了python?OpenCV圖像直方圖處理,文章通過matplotlib畫一個(gè)直方圖展開詳情,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Django中如何防范CSRF跨站點(diǎn)請求偽造攻擊的實(shí)現(xiàn)

    Django中如何防范CSRF跨站點(diǎn)請求偽造攻擊的實(shí)現(xiàn)

    這篇文章主要介紹了Django中如何防范CSRF跨站點(diǎn)請求偽造攻擊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python?super()函數(shù)的詳解

    python?super()函數(shù)的詳解

    這篇文章主要為大家介紹了python?super()函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11

最新評論