Django使用SimleUI

  1. 安装SimpleUI

    • 在Django项目的虚拟环境中,通过pip安装SimpleUI:
    pip install django - simpleui
    
  2. 配置SimpleUI

    • 添加到INSTALLED_APPS
      • 打开settings.py文件,将simpleui添加到INSTALLED_APPS列表中。
      INSTALLED_APPS = [
          #...其他应用
          'simpleui',
      ]
      
    • 配置主题(可选)
      • SimpleUI提供了多种主题。可以在settings.py中通过SIMPLEUI_DEFAULT_THEME来配置默认主题。例如:
      SIMPLEUI_DEFAULT_THEME = 'purple - light'
      
      • 这里设置了使用紫色浅色主题。如果不配置这个选项,将使用SimpleUI的默认主题。
  3. 使用SimpleUI美化Django后台管理界面

    • 登录页面美化
      • SimpleUI会自动美化Django的后台登录页面。它提供了一个简洁、美观的界面,可能包括品牌标识(可以通过配置自定义)、背景图片(也可自定义)等元素。
    • 后台管理界面布局优化
      • 在后台管理界面中,SimpleUI对各个应用的管理页面进行了重新布局。例如,模型列表页面更加清晰,操作按钮(如添加、删除、修改等)更加直观。它还提供了一些快捷操作入口,如快速搜索框,方便管理员查找特定的记录。
    • 自定义菜单(在admin.py中)
      • 可以通过admin.py来自定义后台管理菜单。例如,重新排列菜单顺序、添加分隔线、分组菜单等。
      from django.contrib import admin
      from.models import Book, Author
      
      # 自定义菜单顺序和分组
      class CustomAdminSite(admin.AdminSite):
          def get_app_list(self, request):
              app_list = super().get_app_list(request)
              # 重新排列应用顺序
              app_list.sort(key = lambda x: x['name'])
              # 为特定应用添加分隔线
              for app in app_list:
                  if app['app_label'] == 'books':
                      app['models'].append({
                          'name': '---',  # 分隔线名称
                          'object_name': 'divider',
                          'perms': {
                              'add': False,
                              'change': False,
                              'delete': False
                          }
                      })
              return app_list
      
      admin_site = CustomAdminSite()
      admin_site.register(Book)
      admin_site.register(Author)
      
      • 上述代码自定义了管理站点的菜单,对应用进行排序,并在books应用的菜单中添加了一个分隔线。
  4. 利用SimpleUI的其他功能(如图表等)

    • 数据可视化(以图表为例)
      • SimpleUI支持一些简单的数据可视化功能。假设你有一个统计模型,用于记录网站的访问量等数据,你可以在admin.py中集成图表显示。首先,需要一个获取数据的函数,例如:
      from.models import VisitStatistic
      from django.db.models import Sum
      from collections import OrderedDict
      
      def get_visit_statistics():
          # 按日期统计访问量
          statistics = VisitStatistic.objects.values('date').annotate(total_visits = Sum('visits')).order_by('date')
          data = OrderedDict()
          for stat in statistics:
              data[stat['date']] = stat['total_visits']
          return data
      
      • 然后在admin.py中注册这个函数来显示图表:
      from simpleui.analytics import Analytics
      from django.contrib import admin
      
      class VisitStatisticAdmin(admin.ModelAdmin):
          list_display = ('date', 'visits')
      
          class Media:
              js = ('js/chart.min.js',)  # 假设已经有一个chart.min.js用于图表绘制
      
          def changelist_view(self, request, extra_context = None):
              analytics = Analytics()
              analytics.add('访问量统计', get_visit_statistics(), 'line')  # 以折线图形式显示访问量统计
              if extra_context is None:
                  extra_context = {}
              extra_context['analytics'] = analytics.get()
              return super().changelist_view(request, extra_context)
      
      • 这样,在访问VisitStatistic模型的管理页面时,就可以看到一个显示访问量统计的折线图,帮助管理员更直观地了解数据趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑上单车去旅行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值