<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用者物件是認證系統的核心。django的認證框架中的使用者只有一個類
預設使用者的主要屬性
建立使用者最直接的方法是使用包含create_user()的函數
from django.contrib.auth.models import User user=User.objects.create_user("username","email","password")
通過命令列方式建立超級使用者
python manage.py createsuperuser
第一種:通過命令列方式
python manage.py changepassword (你的使用者名稱,如果沒有輸入,預設當前的使用者)
第二種:通過資料模型開修改
from django.contrib.auth.models importf User user=User.objects.get(username=(需要修改的使用者名稱)) user.set_password("new password") user.save()
authenticate(request,username,password)
使用authenticate(request)來驗證使用者。它使用username和password作為引數來驗證,對每個身份驗證後端進行檢查。如果後端驗證有效,則返回一個User物件,如果沒有,將返回None
django使用sessions和中介軟體將身份驗證系統掛接到請求物件中
它們在每次請求都會提供request.user屬性。如果當前沒有使用者登入。這個屬性將會設定為AnonymousUser,否則將會被設定為user範例
你可以使用is_authenticatded區分兩者
唯讀屬性,始終返回 True (匿名使用者 AnonymousUser.is_authenticated 始終返回 False )。這是一種判斷使用者是否已通過身份認證的方法。這並不意味著任何許可權,也不會檢查使用者是否處於活動狀態或是否具有有效對談。即使通常你會根據 request.user 檢查這個屬性,以確定它是否被 AuthenticationMiddleware 填充(表示當前登入的使用者),但是你應該知道該屬性對於任何 User 範例都返回 True。
if request.user.is_authenticated: pass else: pass
如果有已驗證的使用者想新增到session中,將通過login()函數完成
login(request,user,)要在檢視中讓使用者登入,使用 login() 。它需要 HttpRequest 物件和 User 物件。通過 Django 的 session 框架, login() 會在 session 中儲存使用者的ID。
from django.contrib.auth import authenticate,login def fun(request): username=request.POST("username") password=request.POST("password") user=authenticate(request,username=username,password=password) if user is not None: login(request,user) else: pass
logout(request)
如果已經通過django.contrib.auth.login()登入的使用者想要登出,可以使用logout()方法,需要傳入request
from django.contrib.auth import logout def logout_view(request): logout(request)
原始方式
限制存取頁面最原始的辦法就是檢查,request.user.is_authenticated並重定向到登入頁面
from django.conf import settings from django.shortcuts import redirect def my_view(request): if not request.user.is_authenticated: return redirect()
login_required裝飾器
作為快捷方式,你可以使用login_required()裝飾器
from django.contrib.auth.decorators import login_required @login_required def my_view(request): ...
login_required()會執行以下操作:
使用基於類的檢視時,可以使用LoginRequiredMixin實現和login_required相同的行為。這個Mixin應該在繼承列表最左邊的位置
from django.contrib.auth.mixins import LoginRequiredMixin class MyView(LoginRequiredMixin,View): login_url="/login/" redirect_field_name="xxx"
到此這篇關於django驗證系統的具體使用的文章就介紹到這了,更多相關django 驗證系統內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45