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的會有比較齊全的方法可以直接使用。
相關文章
- Python Django進階教程(四)(通用檢視)PythonDjango
- 06.Django-使用者認證Django
- Django的使用者認證元件Django元件
- Python Django進階教程(三)(模型的高階用法)PythonDjango模型
- Django教程(二)- Django檢視與網址進階Django
- Python Django進階教程(六)(快取機制,CSRF)PythonDjango快取
- Python Django進階教程(一)(高階檢視和URL配置)PythonDjango
- Django整合OpenLDAP認證DjangoLDA
- Django之使用者認證模組詳解Django
- Django 使用者認證系統:註冊Django
- Python Django進階教程(二)(模版過濾器,標籤)PythonDjango過濾器
- Python Django基礎教程(五)(表單)PythonDjango
- Django使用者認證系統(一)User物件Django物件
- Django 使用者認證系統:基本設定Django
- Django(65)jwt認證原理DjangoJWT
- Django進階之路(一)Django
- Django 進階之 celeryDjango
- Django框架中的使用者認證的實現Django框架
- Django(62)自定義認證類Django
- Token認證——Django Rest framework(1)DjangoRESTFramework
- django開發電子商城(五)django表單傳值和ORM進階查詢DjangoORM
- 【Python】Django--認證系統-登入註冊PythonDjango
- Django學習筆記(13)——Django的使用者認證元件,檢視層和QuerySet APIDjango筆記元件API
- Python Django進階教程(七)(部署,ajax通訊以及檔案上存)PythonDjango
- Django REST framework API 指南(13):認證DjangoRESTFrameworkAPI
- python-Django基本流程原理02-認證系統PythonDjango
- Django Cookie與SessionDjangoCookieSession
- 6.Django sessionDjangoSession
- Django基礎八之認證模組---authDjango
- 2-django進階之日誌功能Django
- Django教程(三) Django表單FormDjangoORM
- Django 中介軟體實現使用者認證與IP頻率限制Django
- 進階剖析django通用類UpdateView(2張圖)DjangoView
- Nodejs 進階:express+session 實現簡易身份認證NodeJSExpressSession
- Django(64)頻率認證原始碼分析與自定義頻率認證Django原始碼
- Django筆記三十二之session登入驗證操作Django筆記Session
- Python Django 的 django templatedoesnotexistPythonDjango
- 自定義Django認證系統的技術方案Django