django xadmin實(shí)現(xiàn)自定義頁(yè)面并且權(quán)限控制方式
寫(xiě)一些內(nèi)部工具
自定也頁(yè)面效果圖

代碼如下
class GlobalSettings(object):
# 修改title
site_title = 'VIP權(quán)益服務(wù)后臺(tái)'
# 修改footer
site_footer = 'xxxx科技有限公司'
# 收起菜單
menu_style = 'accordion'
def get_site_menu(self):
return [
{
'title': '常用工具',
'perm': self.get_model_perm(ToolsModel, 'view'),
'icon': 'fa fa-support',
'menus': (
{
'title': '加解密',
'url': '/tools/enc_dec_tool',
'perm': self.get_model_perm(EncDecModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '加權(quán)益點(diǎn)數(shù)',
'url': '/tools/add_benefit_points_tool',
'perm': self.get_model_perm(AddBenefitPointModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '生成兌換碼',
'url': '/tools/gen_cashing_tool',
'perm': self.get_model_perm(GenCashingModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '換手機(jī)號(hào)',
'url': '/tools/change_phone_tool',
'perm': self.get_model_perm(ChangePhoneModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '生成會(huì)員',
'url': '/tools/init_member_tool',
'perm': self.get_model_perm(InitMemberModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '生成卡號(hào)',
'url': '/tools/gen_card_number_tool',
'perm': self.get_model_perm(GenCardNumberModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': 'ras生成簽名',
'url': '/tools/gen_rsa_sign_tool',
'perm': self.get_model_perm(GenRsaSignModel, 'view'),
'icon': 'fa fa-smile-o'
},
# {
# 'title': '單個(gè)退款',
# 'url': '/tools/refund_member_tool',
# 'perm': self.get_model_perm(Realname, 'view'),
# 'icon': 'fa fa-smile-o'
# },
)
}
]
# 將title和footer信息進(jìn)行注冊(cè)
xadmin.site.register(views.CommAdminView, GlobalSettings)url注冊(cè)
from django.conf.urls import url
from tools import views
urlpatterns = [
url(r'^real_name_tool$', views.RealnamView.as_view()),
url(r'^enc_dec_tool$', views.EncDecView.as_view()),
url(r'^add_benefit_points_tool$', views.AddBenefitPointView.as_view()),
url(r'^gen_cashing_tool$', views.GenCashingView.as_view()),
url(r'^change_phone_tool$', views.ChangePhoneView.as_view()),
url(r'^init_member_tool$', views.InitMemberView.as_view()),
url(r'^refund_member_tool$', views.RefundMemberView.as_view()),
url(r'^gen_card_number_tool$', views.GenCardNumberView.as_view()),
url(r'^gen_rsa_sign_tool$', views.GenRsaSignView.as_view()),
url(r'^add_uv$', views.add_uv_view),
url(r'^real_name_api$', views.real_name_view),
]其中一個(gè)from表單
class EncDecForm(forms.Form):
ENC_DEC_TYPE = (
("enc", "加密"),
("dec", "解密"),
)
enc_dec_str = forms.CharField(label='字符串', required=True, help_text='需要加密/解密的字符串')
enc_dec_type = forms.ChoiceField(choices=ENC_DEC_TYPE, required=True, label="操作類(lèi)型")
result = forms.CharField(label='結(jié)果', required=False, widget=forms.TextInput(attrs={'readonly': 'true'}))其中一個(gè)視圖函數(shù)
class EncDecView(View):
def get(self, request):
return render(request, 'tools/enc_dec_str.html', {'enc_dec_form': EncDecForm()})
def post(self, request):
enc_dec_form = EncDecForm(request.POST)
if enc_dec_form.is_valid():
enc_dec_str = request.POST.get("enc_dec_str", "")
enc_dec_type = enc_dec_form.cleaned_data["enc_dec_type"]
try:
# decrypt_info, encrypt_info
result = eval(enc_dec_type + "rypt_info")(enc_dec_str)
logger.info(result)
messages.success(request, '加解密查看結(jié)果↓')
enc_dec_form = EncDecForm(initial={"result":result, "enc_dec_type": enc_dec_type})
except Exception as e:
logger.error(e)
messages.error(request, '加解密異常')
return render(request, 'tools/enc_dec_str.html', {'enc_dec_form': enc_dec_form})
else:
return render(request, 'tools/enc_dec_str.html', {'enc_dec_form': enc_dec_form})效果

授權(quán)代碼
使用
managed = True 空model
class ToolsModel(models.Model):
class Meta:
managed = True
verbose_name = '常用工具'
verbose_name_plural = verbose_name給子賬號(hào)授權(quán)

子賬號(hào)登錄 展示一些你寫(xiě)menu

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python和wxPython實(shí)現(xiàn)下載視頻封面
這篇文章主要為大家詳細(xì)介紹了如何使用Python和wxPython實(shí)現(xiàn)下載視頻封面,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
Python遠(yuǎn)程控制Windows服務(wù)器的方法詳解
在很多企業(yè)會(huì)使用閑置的 Windows 機(jī)器作為臨時(shí)服務(wù)器,有時(shí)候我們想遠(yuǎn)程調(diào)用里面的程序或查看日志文件。本文分享了利用Python遠(yuǎn)程控制Windows服務(wù)器的方法,感興趣的可以學(xué)習(xí)一下2022-05-05
python異常基類(lèi)BaseException詳解
這篇文章主要為大家介紹了python異?;?lèi)BaseException詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Python入門(mén)教程(八)PythonCasting用法
這篇文章主要介紹了Python入門(mén)教程(八)PythonCasting用法,Python是一門(mén)非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門(mén)教程,需要的朋友可以參考下2023-04-04
Python 跨文件夾導(dǎo)入自定義包的實(shí)現(xiàn)
有時(shí)我們自己編寫(xiě)一些模塊時(shí),跨文件夾調(diào)用會(huì)出現(xiàn)ModuleNotFoundError: No module named 'XXX',本文就來(lái)介紹一下解決方法,感興趣的可以了解一下2023-11-11
python獲取網(wǎng)絡(luò)圖片方法及整理過(guò)程詳解
這篇文章主要介紹了python獲取網(wǎng)絡(luò)圖片方法及整理過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python的pdb調(diào)試命令的命令整理及實(shí)例
這篇文章主要介紹了python的pdb調(diào)試命令的命令整理及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
Python使用爬蟲(chóng)爬取靜態(tài)網(wǎng)頁(yè)圖片的方法詳解
這篇文章主要介紹了Python使用爬蟲(chóng)爬取靜態(tài)網(wǎng)頁(yè)圖片的方法,較為詳細(xì)的說(shuō)明了爬蟲(chóng)的原理,并結(jié)合實(shí)例形式分析了Python使用爬蟲(chóng)來(lái)爬取靜態(tài)網(wǎng)頁(yè)圖片的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06

