根據使用者許可權設定使用者可以訪問哪些頁面,用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...