django18:auth模塊

Auth模塊

執行數據庫遷移命令后,自動生產多個表。

django_session

auth_user

直接訪問admin路由,需要輸入用戶名和密碼,就是參考auth_user表

管理員用戶才能進入

創建超級用戶

createsuperuser

from django.contrib import auth1.校驗用戶名和密碼是否正確  
user_obj=auth.authenticate(request,username=username,password=password)  # 用戶名和密碼兩個一個都不能少
# 該方法返回值:當用戶名和密碼正確的時候:返回的用戶對象 
#不正確返回None2.保存登錄狀態
auth.login(request,user_obj)  
# 這一句執行之后 request.user就能獲取當前登錄的用戶對象,user_obj3. 如何判斷當前用戶是否登錄 以及如何獲取當前登錄用戶對象
request.user.is_authenticated()  # 判斷是否登錄  BOOL值
#*********在新版中貌似去掉括號才行。
request.user.is_authenticate4. 校驗用戶是否登錄from django.contrib.auth.decorators import login_required# 局部配置 @login_required(login_url='/login/')    # /login/沒有登錄跳轉的頁面def xxx(request):return HttpResponse('xxx頁面')	  # 登錄之后的在視圖文件@login_requireddef xxx(request):return HttpResponse('xxx頁面')# 如果兩個都設置了 那么優先執行局部配置5.修改密碼request.user.check_password(old_password)  # 校驗原密碼是否正確,返回boolrequest.user.set_password(new_password)   #修改新密碼,需要保存request.user.save()                        # 一定要保存 6.注銷功能auth.logout(request)  	# 刪除了對應的session值
例子@login_requireddef xxx(request):auth.logout(request)return HttpResponse('xxx頁面')7.注冊功能#User.objects.create()  	      # 創建普通用戶,密碼是明文。不推薦User.objects.createuser()  	      # 創建普通用戶,基本都用它 User.objects.createsuperuser()    # 創建超級用戶,郵箱要給數據

?setting.py

# 全局配置
在setting.py配置文件中寫以下代碼LOGIN_URL = '/login/'

?

?注冊功能例子:

擴展auth_user表

利用類的繼承# 1 類的繼承
from django.contrib.auth.models import User,AbstractUser# Create your models here.
class Userinfo(AbstractUser):phone = models.BigIntegerField()avatar = models.FileField()#**繼承了AbstractUser,執行數據庫遷移命令不會創建auth_user#Userinfo表中,出現auth_user所有字段,還有自定義字段#前提:1.沒有執行數據庫遷移命令。2.如果當前數據庫已經創建(auth_user),就要創建新的數據庫。3. 擴展的字段,不要與原先表中的字段沖突4. 需要在配置文件聲明#####"""django就會將userinfo表來替換auth_user表并且之前auth模塊所有的功能不變 參照的也是userinfo表"""

?settings.py

# 2 配置文件AUTH_USER_MODEL = '應用名.表名'AUTH_USER_MODEL = 'app01.Userinfo'

參考:Django之CSRF、token驗證、csrf裝飾器、auth模塊方法大全 - Jeff的技術棧 - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280547.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280547.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280547.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hulu dpp_什么是直播電視的Hulu,它可以代替您的有線電視訂閱嗎?

hulu dppStreaming cable replacements are becoming a much more appealing option for cable cutters across the board, with more choices available than ever before. Hulu’s Live TV option is a relative newcomer to the scene, but is it worth it? 對于全系列的電…

suse linux ssh遠程無法訪問問題

當正常安裝完Suse Linux Enterprise Server 11 sp1 時,無法通過SecureCRT或者PuTTY之類的終端程序進行連接。 折騰了一下,發現問題所在: 1、 需要關閉防火墻,如下圖在YAST里可以關閉,也可以使用下面命令行的方式&…

4.Linux的目錄結構

Linux的目錄結構 (1)"/"目錄 Linux文件系統的入口,也是出于最高一級的目錄 (2)"/bin" 基礎系統所需要的那些命令位于此目錄。也是最小系統所需要命令;比如ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中…

Jade —— 源于 Node.js 的 HTML 模板引擎

2013-12-11 發布Jade —— 源于 Node.js 的 HTML 模板引擎 開源項目介紹 web 模板引擎 node.js jade 207.8k 次閱讀 讀完需要 69 分鐘54Jade 是一個高性能的模板引擎,它深受 Haml 影響,它是用 JavaScript 實現的,并且可以供 Node…

詐騙者如何偽造電子郵件地址,以及如何分辨

Consider this a public service announcement: Scammers can forge email addresses. Your email program may say a message is from a certain email address, but it may be from another address entirely. 考慮這是一項公共服務公告:詐騙者可以偽造電子郵件地…

如何對整個 WPF 應用程序進行灰度

如何對整個 WPF 應用程序進行灰度控件名:GrayscaleEffect作 者:WPFDevelopersOrg - 驚鏵原文鏈接[1]:https://github.com/WPFDevelopersOrg/WPFDevelopers 簡易源碼[2]框架使用.NET40;Visual Studio 2019;如果要實現灰度第一反是…

django19:項目開發流程

參考:https://www.bilibili.com/video/BV1QE41147hU?p831&spm_id_frompageDriver

React Native - FlexBox彈性盒模型

FlexBox布局 1. 什么是FlexBox布局? 彈性盒模型(The Flexible Box Module),又叫FlexBox,意為"彈性布局",旨在通過彈性的方式來對齊和分布容器中內容的空間,使其能適應不同屏幕,為盒模型提供最大的靈活性. ??Flex布局主要思想是: 讓容器有能力讓其子項目能夠改變其…

java虛擬機讀寫其他進程的數據

在java中,process類提供了如下3個方法,用于讓程序和其他子進程進行通信。 InputStream getErrorStream():獲取子進程的錯誤流。 InputStream getInputStream():獲取子進程的輸入流。…

release8_如何在Windows 8 Release Preview中將Chrome用作Metro瀏覽器

release8Windows 8 allows third-party browser to replace Internet Explorer in the Metro environment — except on Windows RT. You can use Google Chrome in Metro today, and Firefox for Metro is on the way. Windows 8允許第三方瀏覽器在Metro環境中替換Internet Ex…

html jQuery/bootstrap通過網絡bootcdn導入連接

網絡連接網址 https://www.bootcdn.cn/ <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><title>title</title><!-- Bootstrap --><link href"https://cdn.bootcdn.net/ajax/libs/twi…

Python深入類和對象

一. 鴨子類型和多態 1.什么是鴨子類型&#xff1a; 在程序設計中&#xff0c;鴨子類型&#xff08;英語&#xff1a;Duck typing&#xff09;是動態類型和某些靜態語言的一種對象推斷風格。"鴨子類型"像多態一樣工作&#xff0c;但是沒有繼承。“鴨子類型”的語言是這…

linux中/usr下文件權限修改setuid導致的問題

2019獨角獸企業重金招聘Python工程師標準>>> 在Ubuntu系統中因為一些原因我使用如下命令修改了/usr目錄的擁有者權限&#xff1a; chown -R root:root /usr結果直接導致系統無法正常啟動&#xff0c;通過跟蹤系統啟動日志/var/log/syslog找到如下失敗原因&#xff1…

[轉載]unix環境高級編程備忘:理解保存的設置用戶ID,設置用戶ID位,有效用戶ID,實際用戶ID...

轉載自http://www.cnblogs.com/stemon/p/5287631.html 一、基本概念 實際用戶ID(RUID)&#xff1a;用于標識一個系統中用戶是誰&#xff0c;一般是在登錄之后&#xff0c;就被唯一的確定&#xff0c;就是登錄的用戶的uid。 有效用戶ID(EUID)&#xff1a;用于系統決定用戶對系統…

django20:BBS網頁設計/注冊功能/驗證碼代碼

表設計 注冊功能 """ 1.注冊功能需要forms組件 不同功能&#xff0c;可單獨一個py文件2.利用forms組件渲染前端標簽1.利用ajax提交2.forms組件獲取用戶數據的數據。$(#form).serializeArray()獲取forms標簽所有用戶普通鍵值對的數據3. 手動渲染頭像label里面內…

用最少的代碼打造一個Mini版的gRPC框架

在《用最少的代碼模擬gRPC四種消息交換模式》中&#xff0c;我使用很簡單的代碼模擬了gRPC四種消息交換模式&#xff08;Unary、Client Streaming、Server Streaming和Duplex Streaming&#xff09;&#xff0c;現在我們更近一步&#xff0c;試著使用極簡的方式打造一個gRPC框架…

Windows 10的下一個更新將在您觀看視頻時隱藏通知

Windows 10’s Focus Assist feature temporarily hides incoming notifications. In Windows 10’s next update, Focus Assist can activate when you’re using any full-screen app, whether that’s YouTube in a browser, Netflix, or a desktop video player like VLC. …

Ubuntu安裝Samba文件共享服務器(NAS)

終于有點時間來解決下家中NAS需求了。一般自制NAS&#xff0c;只有選Samba。速度比FTP快&#xff0c;便利性比Windows文件夾共享好&#xff0c;設置多等等。 ?參考&#xff1a;samba簡介 安裝Samba $ sudo apt-get update $ sudo apt-get install samba samba-common-bin 核心…

剛畢業的ERP實施顧問做甲方

我剛畢業進入了一家小公司做ERP實施顧問&#xff0c;是一個臺灣的ERP軟件&#xff0c;就簡單培訓了一天&#xff0c;第二天就進入一家客戶公司解決問題&#xff0c;軟件都還沒有熟悉呢&#xff0c;更別說業務流程了&#xff0c;一天下來&#xff0c;人家員工問一個問題我記下來…

django21:admin后臺管理\media配置\圖片防盜鏈\暴露后端資源\路由分發\時間分類

admin后臺管理 創建超級用戶 createsuperuser 1.到應用下的admin.py注冊模型表 from django.contrib import admin from blog import models # Register your models here.admin.site.register(models.UserInfo) admin.site.register(models.Article) admin.site.register(m…