使用者表,許可權表,角色表
當乙個使用者訪問url,先登入,當登入後拿到這個使用者的角色和許可權
當使用者去訪問其他的url的時候,判斷這個url是否有這個許可權,有就可以訪問,沒有就不讓訪問
在中介軟體裡面建立白名單,可以讓使用者訪問的頁面
第一步建立表:
from django.db import models
# create your models here.
# 使用者表
class user(models.model):
name = models.charfield(max_length=32)
pwd = models.charfield(max_length=32)
roles = models.manytomanyfield('role')
def __str__(self):
return self.name
# 許可權表
class role(models.model):
title = models.charfield(max_length=32)
permissions = models.manytomanyfield('permission')
def __str__(self):
return self.title
class permission(models.model):
title = models.charfield(max_length=32)
url = models.charfield(max_length=32)
def __str__(self):
return self.title
----
在terminal執行: python manage.py makemigrations
在terminal執行: python manage.py migrate
第二步:使用django中的admin新增資料
from django.contrib import admin
# register your models here.
from project import models
class permissionadmin(admin.modeladmin):
list_display = ['pk', 'title', 'url']
class roleadmin(admin.modeladmin):
list_display = ['pk', 'title']
admin.site.register(models.user)
admin.site.register(models.role)
admin.site.register(models.permission, permissionadmin)
在pycharm 中的terminal建立超級使用者:
python manage.py createsuperuser
第三步驟:將使用者名稱和session放入到session
# 如果有使用者,代表著登入成功
if user_obj:
# 寫入session
request.session['user'] = user_obj.name
per_obj = models.permission.objects.filter(role__user__name=user_obj.name).distinct()
permisson_list = [i.url for i in per_obj]
request.session['permission_list'] = permisson_list
return httpresponse('登入成功')
return render(request, 'login.html')第四步:與project同級建立中介軟體 middleware.py,同時在settings.py中的middleware,加入中介軟體:
#登入認證
user = request.session.get('user')
if not user:
return redirect('login')
#認證for item in request.session['permission_list']:
print(item)
print(request.path)
reg = '^%s$'%item
ret = re.search(reg, request.path)
if ret:
return none
else:
return httpresponse('沒有許可權')
python之Django框架篇 基礎一複習
0.django安裝 pip3 install django 1.11.11 pip3 install i django 1.11.11 pycharm安裝的時候 注意不要勾選那個選項 你們懂得 1.django專案的啟動 1.命令列啟動 在專案的根目錄下 也就是有manage.py的那個目錄 執行...
django框架之安裝
我們安裝的是django 1.11.14 版本 我們先用pycham先裝 files選單欄下選擇setting,然後再找project下的直譯器project interpreter,然後點選右邊的加號按鈕,在搜尋框中搜尋django,選擇版本,雙擊安裝。看圖 然後再介紹用pip安裝 開啟cmd,在...
Linux之許可權篇
rachel bigdata senior02 ls l total 64 rwxrw r 1 root root 1213 feb 2 09 39 abc第乙個字元代表檔案 目錄 d 鏈結 l 其餘字元每3個一組 rwx 讀 r 寫 w 執行 x 第一組rwx 檔案所有者的許可權是讀 寫和執行 第...