Python Django進階教程(五)(session,Django使用者認證)
Django版本:1.11
作業系統:Windows
Python:3.5
歡迎加入學習交流QQ群:657341423
session(會話),Django使用者認證。
每個網站都cookies,會話,使用者登入這些基本功能,這也是不能缺乏的功能。
現在大部分網站來說,基本上都是用session的多,原因無非就是安全性比cookies的高。
這裡就側重講解session用法。cookies可自行網上找資料。
本文說的session(會話)和Django使用者認證,簡單來說,兩者都是屬於使用者管理的部分。如果在實際開發中,要自行建立使用者模組的,那麼 session就會用到,如果直接使用django的使用者認證模組,那麼很多現有功能都是可以直接使用的。
session做一個簡單登入功能。
先看urls.py
Form.py。這個可以根據實際使用,也可不用。
models.py
這裡用之前的章節的資料庫,name作為username,address作為password。
login.html
index.html
最後看views.py
這裡定義三個def,分別login,index和logout。
先看import
login
index和logout
設計思路:
如果輸入/index/的url,會根據session檢查是否已存在,如果沒有的話,會跳到登入介面。
登入介面,會根據使用者輸入的帳號密碼,從資料庫的資料匹配,符合的話跳到index,否則會停留在login介面。
擴充套件思路:
如果在平常的網站開發過程中,會有很多網頁需要進行使用者驗證登入才能訪問該網址的時候,我們可以在views.py裡面的def使用裝飾器進行登入驗證。
在上述例子中,進行擴充。
其餘部分不變,在views.py裡面新增一個裝飾器。
程式碼如下:
這部分程式碼與index的def很相似。
再看def index
同樣,logout也可以這樣設定
這樣就可以實現允許登陸的使用者訪問。
session一些小設定:
如果做到關閉網頁,自動退出使用者登入,或者網頁停止訪問後,使用者自動退出,可以在setting.py設定這個
Django使用者認證
Django使用者認證功能基本上可以滿足大部分網站的需求的。
我們用Django使用者認證功能實現上述功能。
先看urls.py
為了區別,對上面的程式碼做了部分修改
Form.py新增一個類,這個主要用於後面新增使用者的。
views.py
這裡用到django的auth的login和logout,所以上述定義的logout和login要修改,不然會衝突。
說明:這裡都是用表單生成html,然後用django的auth,上述用的是自定義的資料庫。兩者都是同一個models,只是對應不同的資料表,而且認證系統會有現成的方法,例如只允許登陸的使用者訪問。
擴充:
使用者新增,通常網站都有新使用者註冊的功能的,如果用到django的認證系統。那麼新增使用者教程如下:
Form.py可以看上述的截圖。
urls.py是url(r'^adduser/$', views.adduser),
其實用到from django.contrib.auth.models import User
這個即可。這也不是很複雜的問題。
修改密碼:
總結:總的來說,使用者管理,使用者登入這模組功能,可以根據實際需求進行自定義開發或者使用django的即可。兩者區別就是,用得資料表不一樣,django的會有比較齊全的方法可以直接使用。
相關文章
- Django的使用者認證元件Django元件
- 06.Django-使用者認證Django
- Django整合OpenLDAP認證DjangoLDA
- Django使用者認證系統(一)User物件Django物件
- Django之使用者認證模組詳解Django
- Django(65)jwt認證原理DjangoJWT
- Django 進階之 celeryDjango
- Django進階之路(一)Django
- Token認證——Django Rest framework(1)DjangoRESTFramework
- Django(62)自定義認證類Django
- Django Cookie與SessionDjangoCookieSession
- Django學習筆記(13)——Django的使用者認證元件,檢視層和QuerySet APIDjango筆記元件API
- python-Django基本流程原理02-認證系統PythonDjango
- Django REST framework API 指南(13):認證DjangoRESTFrameworkAPI
- 深入Django:使用者認證與許可權控制實戰指南Django
- 2-django進階之日誌功能Django
- Django筆記三十二之session登入驗證操作Django筆記Session
- Django框架之Cookie和SessionDjango框架CookieSession
- Django 中介軟體實現使用者認證與IP頻率限制Django
- Django基礎八之認證模組---authDjango
- python djangoPythonDjango
- Django(64)頻率認證原始碼分析與自定義頻率認證Django原始碼
- Django中的session常見配置DjangoSession
- 自定義Django認證系統的技術方案Django
- Python3影片零基礎進階高階運維Django爬蟲專案實戰2017全套教程Python運維Django爬蟲
- Django實戰1-許可權管理功能實現-03:使用者認證Django
- Django入門到進階-適合Python小白的系統課程DjangoPython
- 進階剖析django通用類UpdateView(2張圖)DjangoView
- Django進階之路由層和檢視層Django路由
- Python框架DjangoPython框架Django
- Django基礎六之cookie和sessionDjangoCookieSession
- Django基礎五之django模型層(二)多表操作Django模型
- 二、django rest_framework原始碼之認證流程剖析DjangoRESTFramework原始碼
- Django認證系統並不雞肋反而很重要Django
- django 驗證碼框架Django框架
- Django高階表單處理與驗證實戰Django
- Django基礎五之django模型層(一)單表操作Django模型
- Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTEDDjangoMySqlSessionMIT
- DRF比Django的認證和許可權高在哪裡Django