1 写一些内部工具, 自定也页面效果图
代码如下
class GlobalSettings(object):
# 修改title
site_title = 'VIP权益服务后台'
# 修改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': '加权益点数',
'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': '换手机号',
'url': '/tools/change_phone_tool',
'perm': self.get_model_perm(ChangePhoneModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '生成会员',
'url': '/tools/init_member_tool',
'perm': self.get_model_perm(InitMemberModel, 'view'),
'icon': 'fa fa-smile-o'
},
{
'title': '生成卡号',
'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': '单个退款',
# 'url': '/tools/refund_member_tool',
# 'perm': self.get_model_perm(Realname, 'view'),
# 'icon': 'fa fa-smile-o'
# },
)
}
]
# 将title和footer信息进行注册
xadmin.site.register(views.CommAdminView, GlobalSettings)
url注册
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),
]
其中一个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="操作类型")
result = forms.CharField(label='结果', required=False, widget=forms.TextInput(attrs={'readonly': 'true'}))
其中一个视图函数
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, '加解密查看结果↓')
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})
效果
授权代码 使用
managed = True 空model
class ToolsModel(models.Model):
class Meta:
managed = True
verbose_name = '常用工具'
verbose_name_plural = verbose_name
给子账号授权
子账号登录 展示一些你写menu