django 通過url實現簡單的許可權控制的例子

2022-09-28 08:24:05 字數 2253 閱讀 8126

根據使用者許可權設定使用者可以訪問哪些頁面,用django實現乙個簡單的demo。

1.models.py 檔案

class level(models.model):

l_name = models.charfield(max_length=50,verbose_name="等級名稱")

l_permission = models.onetoonefield("permission")

def __str__(self):

return self.l_name

class userinfo(models.model):

u_name = m"使用者名稱")

u_user = models.onetoonefield(user)

u_level = models.foreignkey(level,related_name="lev")

def __str__(self):

return self.u_name

class permission(models.model):

p_name = models.charfield(max_length=50,verbose_name="許可權名稱")

p_menu = models.manytomanyfield("menu")

def __str__(self):

return self.p_name

class menu(models.model):

m_name = models.charfield(max_length=50,verbose_name="選單名稱")

m_url = models.charfield(max_length=50,verbose_name="選單位址",blank=true,null=true)

def __str__(self):

return 程式設計客棧self.m_name

class nickname(models.model):

n_nickname = models.charfield(max_length=5程式設計客棧0,verbose_name="暱稱",blank=true,null=true)

n_user = models.foreignkey(userinfo,blank=true,null=true,related_name="nick")

def __str__(self):

return self.n_nickname

2.settings.py 檔案

url_white_list = ['index', 'login', 'logout']

設定路由白名單。

3.views.py 檔案

error_msg = "沒有許可權!"

定義乙個路由檢測的閉包方法,根據使用者登入時的session資訊,獲取該使用者角色可以訪問的路由,如果當前訪問的位址不在白名單或是session記錄裡,返回錯誤資訊。

@url_check

def menu(request,menuname):

r程式設計客棧eturn httpresponse(""%menuname)

在之後的方法上新增該閉包,即可實現簡易的路由控制。

本文標題: django 通過url實現簡單的許可權控制的例子

本文位址: /jiaoben/python/268731.html

django 通過url實現簡單的許可權控制

根據使用者許可權設定使用者可以訪問哪些頁面,用django實現乙個簡單的demo。class level models.model l name models.charfield max length 50,verbose name 等級名稱 l permission models.onetoone...

通過URL訪問django靜態資源

這個問題真的困擾了好幾天 這個跟django的版本號應該有關係,網上的方法大多都只適用於舊的django版本 截止發帖為止,我當前用的是django 2.1.2版本 首先給出解決方案 在urlpatterns裡加入url r static p.views.serve 下面是詳細解釋 首先需要在url...

URL編碼簡單實現

我們在呼叫某些get請求的時候需要呼叫引數,當我們通過程式設計來實現的時候會碰到一些尷尬情況,我們的呼叫引數沒有被編碼。有鑑於此,我在做某個專案的時候突發乙個奇怪的想法,就是自己編碼自己解碼。當時想到就做,就這樣我就寫了簡單的函式來實現編譯碼,自己對特殊字元和中文進行編譯碼。現在這些函式應用在sit...