电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Django自帶用戶認證系統使用方法解析

瀏覽:67日期:2024-09-19 10:46:13

Django自帶用戶認證系統,這個系統支持訪問控制、注冊用戶、關聯創建者和內容等;在開發用戶認證功能時的時候,可以使用django中的django.contrib.auth 中封?了注冊、認證,登錄登出方法,可以直接使用;

相關表

在使用'python manage.py makemigrationss'和'python manage.py migrate'遷移完成數據庫之后

根據配置文件settings.py中的數據庫段生成的數據表中已經包含了6張進行認證的數據表,分別是

auth_user auth_group auth_group_permissions auth_permission auth_user_groups auth_user_user_permissions

自帶用戶認證系統,進行用戶認證的數據表為auth_user(用戶的數據保存在這個表里)

一、登陸功能:

authenticate():提供了用戶認證,即驗證用戶名以及密碼是否正確,一般需要username和password兩個關鍵字參數

如果通過認證,authenticate()函數會返回一個User對象。當我們試圖登陸一個從數據庫中直接取出來不經過authenticate()的User對象時會報錯。

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

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

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

當用戶登陸成功時,會生成一個sessionid保存在cookies中,可以在數據庫django_session中查看,當用戶訪問其他頁面時,可以通過sessionid判斷用戶是否已經登陸。

Django自帶用戶認證系統使用方法解析

Django自帶用戶認證系統使用方法解析

二、注冊功能

django自帶User模型,導入方法:from django.contrib.auth.models import User

User是auth模塊中維護用戶信息的關系模式,在數據庫中被命名為auth_user,使用migrate會自動生成.

user對象

User對象屬性:username,password為必填項

password用哈希算法保存到數據庫中

is_staff:判斷用戶是否擁有網站的管理權限 is_active:判斷是否允許用戶登陸,設置為“False”時可以不用刪除用戶來禁止用戶登陸

用create_user輔助函數創建用戶

a、create_user創建用戶

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

創建方法: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)

這個函數接受一個HttpResponse對象,無返回值。當調用該函數時,當前請求的session信息全部被清除。即使當前用戶沒有登陸,調用該函數也不會報錯。

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

四、登陸態驗證

login_required() 若在訪問某頁面時,需要確認用戶登陸成功才能訪問,可以在url中用login_required方法進行驗證,如果登陸成功就執行,如果用戶未登陸,自動跳轉登陸頁面。

a.login_requierd()裝飾器

配置跳轉路徑,,當用戶未登陸訪問其他頁面時,自動跳轉到指定的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方法,在用戶未登陸時訪問頁面會出現如下的404錯誤,所需還需要在setting.py進行配置LOGIN_URL。

user對象的login_requierd()裝飾器

Django自帶用戶認證系統使用方法解析

配置跳轉路徑,當用戶未登陸訪問其他頁面時,自動跳轉到登陸頁面

LOGIN_URL = ’/login/’

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

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

五、修改存儲自定義認證中的User表

用戶也可以不使用自帶用戶認證系統默認的數據表auth_user,通過以下方式可以將用戶數據保存到自己定義的表中

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 高速混合机_锂电混合机_VC高效混合机-无锡鑫海干燥粉体设备有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 北京成考网-北京成人高考网 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 风信子发稿-专注为企业提供全球新闻稿发布服务 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 壹车网 | 第一时间提供新车_资讯_报价_图片_排行! | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 免费B2B信息推广发布平台 - 推发网| 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 27PR跨境电商导航 | 专注外贸跨境电商| 消防设施操作员考试报名时间,报名入口,报考条件 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 博莱特空压机|博莱特-阿特拉斯独资空压机品牌核心代理商 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 浙江浩盛阀门有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 铜镍-康铜-锰铜-电阻合金-NC003 - 杭州兴宇合金有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 |