国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django用戶(hù)認(rèn)證: 利用Django Auth模塊實(shí)現(xiàn)用戶(hù)注冊(cè)、登錄與登出

這篇具有很好參考價(jià)值的文章主要介紹了Django用戶(hù)認(rèn)證: 利用Django Auth模塊實(shí)現(xiàn)用戶(hù)注冊(cè)、登錄與登出。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Django用戶(hù)認(rèn)證: 利用Django Auth模塊實(shí)現(xiàn)用戶(hù)注冊(cè)、登錄與登出

用戶(hù)登錄注冊(cè)屬于用戶(hù)認(rèn)證的一部分,Django內(nèi)置了一套用戶(hù)認(rèn)證體系,使用起來(lái)比較方便,而且支持用戶(hù)定制和拓展,足以滿(mǎn)足任何復(fù)雜的業(yè)務(wù)需求。



1 Django 用戶(hù)管理機(jī)制

Django框架中,用戶(hù)權(quán)限管理被劃分為三個(gè)層次:

  • 用戶(hù):系統(tǒng)使用者,擁有自己的權(quán)限??杀灰粋€(gè)或多個(gè)用戶(hù)組包含。
  • 用戶(hù)組:對(duì)用戶(hù)進(jìn)行分類(lèi)。同一用戶(hù)組擁有相同的權(quán)限。
  • 權(quán)限:用于約束用戶(hù)行為。Django中一個(gè)完整的權(quán)限除權(quán)限本身外,還包括用戶(hù)和對(duì)象,即什么用戶(hù)對(duì)什么對(duì)象具有什么樣的權(quán)限。

2 Auth模塊

Auth模塊是Django框架內(nèi)置的權(quán)限管理模塊。利用Auth模塊可以實(shí)現(xiàn)用戶(hù)身份認(rèn)證、用戶(hù)組和權(quán)限管理。

2.1 配置權(quán)限管理模塊

在項(xiàng)目配置文件settings.py中加入以下代碼:

INSTALLED_APPS = [
	'django.contrib.admin',
	'django.contrib.auth', # 權(quán)限管理模塊
	'django.contrib.contenttypes', # 內(nèi)容管理模塊
]

2.2 Auth模塊中的用戶(hù)模型 用戶(hù)組模型 用戶(hù)權(quán)限模型

模塊名稱(chēng) 說(shuō)明
Django.contrib.auth.models.User Auth模塊中的用戶(hù)模型
Django.contrib.auth.models.Group Auth模塊中的組模型
Django.contrib.auth.models.Permission Auth模塊中的權(quán)限模型

3 Django自帶的用戶(hù)模型(User)介紹

3.1 User模型內(nèi)置字段介紹

用戶(hù)模型是Django用戶(hù)認(rèn)證的核心,用戶(hù)模型內(nèi)置了多個(gè)字段可直接使用。

內(nèi)置字段名稱(chēng) 說(shuō)明 字段類(lèi)型
id 數(shù)據(jù)庫(kù)主鍵 int
password 密碼 varchar
last_login 最近登錄時(shí)間 datetime
is_superuser 是否超級(jí)管理員 tinyint
user_name 用戶(hù)賬號(hào) varchar
email 郵箱 varchar
is_staff 是否登錄admin后臺(tái) tinyint
is_active 是否激活 tinyint
date_joined 賬號(hào)創(chuàng)建時(shí)間 datetime

3.2 User模型內(nèi)置方法

內(nèi)置方法名稱(chēng) 說(shuō)明
authenticate(username, password) 用于用戶(hù)認(rèn)證。認(rèn)證成功,則返回一個(gè)User對(duì)象
login(HttpRequest, user) 用于用戶(hù)登錄。user參數(shù)是經(jīng)過(guò)認(rèn)證的User對(duì)象。登錄成功后將用戶(hù)身份信息記錄到請(qǐng)求的會(huì)話(huà)對(duì)象中存儲(chǔ)。后臺(tái)使用request.user可獲取當(dāng)前登錄的用戶(hù)對(duì)象。如果未登錄成功,則request.user得到的是一個(gè)匿名用戶(hù)對(duì)象。
is_authenticated() 判斷當(dāng)前用戶(hù)是否經(jīng)過(guò)認(rèn)證
logout(request) 清除當(dāng)前請(qǐng)求,注銷(xiāo)會(huì)話(huà)
create_user() 創(chuàng)建新用戶(hù),至少提供用戶(hù)名和密碼
set_password(password) 修改密碼
check_password(password) 檢查密碼是否正確

上述內(nèi)置方法,可以在用戶(hù)校驗(yàn)時(shí)為我們提供巨大的方便。
用戶(hù)創(chuàng)建項(xiàng)目和應(yīng)用后,執(zhí)行完數(shù)據(jù)遷移,后臺(tái)會(huì)生成一套auth開(kāi)頭的用戶(hù)權(quán)限數(shù)據(jù)表。


4 基于User模型的功能開(kāi)發(fā)

4.1 用戶(hù)注冊(cè)

在視圖文件views.py中:

# # 導(dǎo)入模塊
from django.shortcuts import render, redirect
from django.http import HttpResponse, JsonResponse
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, logout

def register(request):
	if request.method == 'GET':
		return render(
			request,
			'basic/register.html'
		)
	
	elif request.method == 'POST':
		# 獲取參數(shù)
		user_name = request.POST.get('username', '')
		pwd = request.POST.get('password', '')
		
		# 用戶(hù)已存在
		if User.objects.filter(username=user_name):
			return JsonResponse({
				'code': 200,
				'msg': '用戶(hù)已存在'
			})
		# 用戶(hù)不存在
		else:
			# 使用User內(nèi)置方法創(chuàng)建用戶(hù)
			user = User.objects.create_user(
				username=user_name,
				password=pwd,
				email='123@qq.com',
				is_staff=1,
				is_active=1,
				is_superuser=0
			)
			
			return JsonResponse({
				'code': 200,
				'msg': '用戶(hù)注冊(cè)成功'
			})
	
	else:
		return JsonResponse({
			'code': 403,
			'msg': '被禁止的請(qǐng)求'
		})

4.2 用戶(hù)登錄

在視圖文件views.py中:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-419510.html

"""此處導(dǎo)入的模塊和注冊(cè)是一樣的"""

def login(request):
	if request.method == 'GET':
		return render(
			request,
			'basic/login.html',
		)
	
	elif request.method == 'POST':
		# 獲取參數(shù)
		user_name = request.POST.get('username', '')
		pwd = request.POST.get('password', '')
		
		# 用戶(hù)已存在
		if User.objects.filter(username=user_name):
			# 使用內(nèi)置方法驗(yàn)證
			user = authenticate(username=user_name, password=pwd)
			
			# 驗(yàn)證通過(guò)
			if user:
				# 用戶(hù)已激活
				if user.is_active:
					return JsonResponse({
						'code': 200,
						'msg': '登錄成功'
					})
				# 未激活
				else:
					return JsonResponse({
						'code': 200,
						'msg': '用戶(hù)未激活'
					})
			
			# 驗(yàn)證失敗
			else:
				return JsonResponse({
					'code': 403,
					'msg': '用戶(hù)認(rèn)證失敗'
				})
		
		# 用戶(hù)不存在
		else:
			return redirect('/basic/register')

4.3 用戶(hù)登出

"""此處導(dǎo)入的模塊和注冊(cè)是一樣的"""
def logout(request):
	logout(request)
	return redirect('/basuc/login')

到了這里,關(guān)于Django用戶(hù)認(rèn)證: 利用Django Auth模塊實(shí)現(xiàn)用戶(hù)注冊(cè)、登錄與登出的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • “Layui用戶(hù)認(rèn)證:實(shí)現(xiàn)安全高效的登錄和注冊(cè)體驗(yàn)”

    “Layui用戶(hù)認(rèn)證:實(shí)現(xiàn)安全高效的登錄和注冊(cè)體驗(yàn)”

    layui(諧音:類(lèi) UI) 是一套開(kāi)源的 Web UI 解決方案,采用自身經(jīng)典的模塊化規(guī)范,并遵循原生 HTML/CSS/JS 的開(kāi)發(fā)方式,極易上手,拿來(lái)即用。其風(fēng)格簡(jiǎn)約輕盈,而組件優(yōu)雅豐盈,從源代碼到使用方法的每一處細(xì)節(jié)都經(jīng)過(guò)精心雕琢,非常適合網(wǎng)頁(yè)界面的快速開(kāi)發(fā)。layui 區(qū)別于那些基

    2024年02月16日
    瀏覽(24)
  • 使用Django Rest Framework設(shè)計(jì)與實(shí)現(xiàn)用戶(hù)注冊(cè)API

    在現(xiàn)代Web應(yīng)用開(kāi)發(fā)中,RESTful API已成為前后端分離架構(gòu)中的關(guān)鍵組件。Django Rest Framework (DRF) 是一款基于Django的優(yōu)秀庫(kù),提供了豐富的工具和接口,極大地簡(jiǎn)化了RESTful API的設(shè)計(jì)與實(shí)現(xiàn)。本文將以用戶(hù)注冊(cè)功能為例,展示如何運(yùn)用DRF構(gòu)建一個(gè)完整的API端點(diǎn),包括數(shù)據(jù)驗(yàn)證、模型

    2024年04月25日
    瀏覽(19)
  • Django實(shí)現(xiàn)用戶(hù)注冊(cè)登錄,表單提交后跳轉(zhuǎn)網(wǎng)頁(yè)(學(xué)習(xí)筆記)

    Django實(shí)現(xiàn)用戶(hù)注冊(cè)登錄,表單提交后跳轉(zhuǎn)網(wǎng)頁(yè)(學(xué)習(xí)筆記)

    效果圖如下: ? 使用命令提示符,進(jìn)入想存放項(xiàng)目的目錄: 在項(xiàng)目coco目錄下新建static文件夾,用于存放網(wǎng)頁(yè)文件的css,js,imgs 在coco_app目錄下新建文件夾templates,用于存放需要用到的HTML網(wǎng)頁(yè) 打開(kāi)coco文件夾中的settings.py注冊(cè)coco_app 引用templates 連接數(shù)據(jù)庫(kù),這里我用的MySQL數(shù)據(jù)

    2023年04月11日
    瀏覽(53)
  • Python Django的學(xué)生選課管理系統(tǒng),實(shí)現(xiàn)多用戶(hù)登錄注冊(cè),可選課可評(píng)課

    Python Django的學(xué)生選課管理系統(tǒng),實(shí)現(xiàn)多用戶(hù)登錄注冊(cè),可選課可評(píng)課

    學(xué)生選課管理系統(tǒng)是一個(gè)基于Python Django開(kāi)發(fā)的教務(wù)管理系統(tǒng),旨在提供方便快捷的選課服務(wù)和學(xué)籍管理功能。該系統(tǒng)分為教師端和學(xué)生端兩個(gè)角色,為教師和學(xué)生提供了不同的功能和權(quán)限。 教師端功能: 教師可以登錄系統(tǒng)后,進(jìn)行課程管理、成績(jī)錄入和學(xué)生管理等操作。具

    2024年01月24日
    瀏覽(37)
  • Django用戶(hù)注冊(cè)和用戶(hù)配置擴(kuò)展

    本篇是在完成用戶(hù)登錄登出,密碼修改功能后,擴(kuò)展用戶(hù)注冊(cè)功能。 關(guān)于用戶(hù)登錄、注銷(xiāo)、更改密碼和重置密碼。請(qǐng)查看 Django身份驗(yàn)證初試-CSDN博客 Django登錄注銷(xiāo)視圖-CSDN博客 Django密碼修改和重置視圖-CSDN博客 創(chuàng)建一個(gè)表單,讓用戶(hù)輸入用戶(hù)名、真實(shí)姓名和密碼。 編輯位于

    2024年01月17日
    瀏覽(22)
  • 網(wǎng)頁(yè)版Java(Spring/Spring Boot/Spring MVC)五子棋項(xiàng)目(二)前后端實(shí)現(xiàn)用戶(hù)的登錄和注冊(cè)功能【用戶(hù)模塊】

    網(wǎng)頁(yè)版Java(Spring/Spring Boot/Spring MVC)五子棋項(xiàng)目(二)前后端實(shí)現(xiàn)用戶(hù)的登錄和注冊(cè)功能【用戶(hù)模塊】

    1. 用戶(hù)id 2. 用戶(hù)名 3. 密碼 4. 天梯積分 5. 總場(chǎng)數(shù) 6. 獲勝場(chǎng)數(shù) 和數(shù)據(jù)庫(kù)的數(shù)據(jù)一一對(duì)應(yīng) 1. 連接數(shù)據(jù)庫(kù)(application.yml連接數(shù)據(jù)庫(kù)) 這個(gè)可以直接賦值代碼 2. 創(chuàng)建UserMapper的Java接口(interface UserMapper) 創(chuàng)建接口,在UserMapper.xml實(shí)現(xiàn) 在model中創(chuàng)建 需要實(shí)現(xiàn)@Mapper注釋 3. 創(chuàng)建UserMappe

    2024年02月13日
    瀏覽(23)
  • 軟件著作權(quán)實(shí)名認(rèn)證怎么做?【用戶(hù)注冊(cè)】如何進(jìn)行用戶(hù)注冊(cè)?

    軟件著作權(quán)實(shí)名認(rèn)證怎么做?【用戶(hù)注冊(cè)】如何進(jìn)行用戶(hù)注冊(cè)?

    【用戶(hù)注冊(cè)】如何進(jìn)行用戶(hù)注冊(cè)? 第一步:進(jìn)入中國(guó)版權(quán)保護(hù)中心官網(wǎng),點(diǎn)擊右上角注冊(cè)。中國(guó)版權(quán)保護(hù)中心 (ccopyright.com.cn) ?第二步:進(jìn)入用戶(hù)注冊(cè)頁(yè)面,閱讀用戶(hù)協(xié)議,點(diǎn)擊【同意并繼續(xù)】按鈕。 第三步:選擇注冊(cè)的賬戶(hù)身份。著作權(quán)人是個(gè)人點(diǎn)擊個(gè)人,著作權(quán)人是公司

    2024年02月13日
    瀏覽(24)
  • Django實(shí)戰(zhàn)項(xiàng)目-學(xué)習(xí)任務(wù)系統(tǒng)-用戶(hù)注冊(cè)

    Django實(shí)戰(zhàn)項(xiàng)目-學(xué)習(xí)任務(wù)系統(tǒng)-用戶(hù)注冊(cè)

    接著上期代碼框架,開(kāi)發(fā)第2個(gè)功能,用戶(hù)注冊(cè),在原有用戶(hù)模型基礎(chǔ)上,增加一個(gè)學(xué)生用戶(hù)屬性表,用來(lái)關(guān)聯(lián)學(xué)生用戶(hù)的各種屬性值,這個(gè)屬性表是參考網(wǎng)絡(luò)小說(shuō)里系統(tǒng)屬性值設(shè)計(jì)的,方便直觀了解用戶(hù)的能力高低,等級(jí)以及積分值等信息。 第一步:編寫(xiě)第二個(gè)功能-用戶(hù)注

    2024年02月07日
    瀏覽(16)
  • 【基于Django框架的在線(xiàn)教育平臺(tái)開(kāi)發(fā)-02】用戶(hù)注冊(cè)功能開(kāi)發(fā)

    【基于Django框架的在線(xiàn)教育平臺(tái)開(kāi)發(fā)-02】用戶(hù)注冊(cè)功能開(kāi)發(fā)

    用戶(hù)數(shù)據(jù)表如下所示: Field Type Extra id int Prime Key Auto Increment password varchar(128) last_login datetime(6) Allow Null is_superuser tinyint(1) username varchar(150) first_name varchar(150) last_name varchar(150) email varchar(254) is_staff tinyint(1) is_active tinyint(1) date_joined datetime(6) nick_name varchar(50) birthday date Allow Null

    2024年02月11日
    瀏覽(17)
  • Django基礎(chǔ)入門(mén):后臺(tái)管理 超級(jí)用戶(hù) 數(shù)據(jù)表注冊(cè)操作③

    Django基礎(chǔ)入門(mén):后臺(tái)管理 超級(jí)用戶(hù) 數(shù)據(jù)表注冊(cè)操作③

    ??????個(gè)人簡(jiǎn)介:以山河作禮。 ??????: Python領(lǐng)域新星創(chuàng)作者,CSDN實(shí)力新星認(rèn)證,阿里云社區(qū)專(zhuān)家博主 ????:Web全棧開(kāi)發(fā)專(zhuān)欄:《Web全棧開(kāi)發(fā)》免費(fèi)專(zhuān)欄,歡迎閱讀! ????: 文章末尾掃描二維碼可以加入粉絲交流群,不定期免費(fèi)送書(shū)。 Django 的后臺(tái)管理系統(tǒng)是非常出

    2024年02月11日
    瀏覽(88)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包