Django 【认证系统】auth
生活随笔
收集整理的這篇文章主要介紹了
Django 【认证系统】auth
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇內容
介紹Django框架提供的auth 認證系統
方法:
| 方法名 | 備注 |
| create_user | 創建用戶 |
| authenticate | 登錄驗證 |
| login | 記錄登錄狀態 |
| logout | 退出用戶登錄 |
| is_authenticated | 判斷用戶是否登錄 |
| login_required裝飾器 | 進行登錄判斷 |
?
引入模塊
from django.contrib import auth登錄認證
user = auth.authenticate(username=username, password=pwd)if user is not None:# 將登錄的用戶封裝到request.user# 在中間件中 process_request 中每次都這樣子處理# id = request.session.get("user_id") 得到id# user = auth.User.objects.get(id=id)# request.user = userauth.login(request, user=user)return redirect("/index/")驗證通過則返回user,沒有則返回None,在?login?函數中將認證通過的用戶賦值給?request.user?屬性,以及內部的?session?操作。?封裝request.user = user ? ? ??
認證裝飾器??login_required?
from django.contrib.auth.decorators import login_required@login_required def index(request):print(request.user.username)return render(request, "index.html")需要配置登錄視圖的url,所以需要在?settings?文件中配置如下:
# 如果沒有登錄 默認跳轉的url LOGIN_URL = "/login/"創建用戶
1.普通用戶
from django.contrib.auth.models import User# 加密的user = User.objects.create_user(username="tanglaoer2", password="tanglaoer")user.set_password("tang")user.save()2.超級用戶
user = User.objects.create_superuser(username="tanglaoer2", password="tanglaoer") user.set_password("tang") user.save()注銷
auth.logout(request)內部相當于?request.session.flush()?
擴展自帶的auth_user表
1.新建一個表, 一對一關聯上面的auth_user表
或者新建一個表,繼承的方式
from django.contrib.auth.models import AbstractUserclass UserInfo(AbstractUser):phone = models.CharField(max_length=11)addr = models.CharField(max_length=128)相當于對默認的?auth_user?表做了擴展, 并且代替?auth_user?,還需要在配置文件?settings?中進行如下配置:
# 如果使用繼承的方式 繼承auth的models,要在settings.py里面配置 默認用戶認證時使用的哪張表 AUTH_USER_MODEL = "app.UserInfo"auth認證還是使用?auth?? 只是創建用戶的時候改為 用?UserInfo?
轉載于:https://www.cnblogs.com/tangkaishou/p/10226579.html
總結
以上是生活随笔為你收集整理的Django 【认证系统】auth的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么我上不去号了? 从中午到现在都是中
- 下一篇: lg电视和索尼电视哪个好