Django站点管理:简介、个性化站点管理,后台主题框架(django-simpleui)

一.简介

Django中默认集成了后台数据管理页面,通过简单的配置就可以实现模型后台的Web控制台。
管理界面通常是给系统管理员使用的,用来完成数据的输入,删除,查询等工作。
如果没有集成,自己在settings中的INSTALLED_APPS添加’django.contrib.admin’应用就好了

二.站点管理

1.基本使用

创建App:python manage.py startapp TestAdmin
在settings里配置

INSTALLED_APPS = [
     ...
    'TestAdmin',
]

界面设置
设置为中文:
  settings中LANGUAGE_CODE = ‘zh-hans’
设置时间,时区:
  TIME_ZONE=‘Asia/Shanghai’
  
在根路由下一直有个url:

url(r'^admin/', admin.site.urls),

我们来访问一下:
在这里插入图片描述
这是Django中默认集成的后台数据管理页面。
创建系统管理员:python manage.py createsuperuser
在这里插入图片描述
创建成功之后,再进行登录:
在这里插入图片描述  
该管理后台主要是用来操作模型
创建模型

class Person(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField(default=18)
    sex = models.NullBooleanField(default=0)

    class Meta:
        db_table = 'person'

迁移生成表
  python manage.py makemigrations
  python manage.py migrate
要想Django管理模型,必须要在admin.py中注册:

admin.site.register(Person)

运行结果:
在这里插入图片描述
点击增加,添加数据:
在这里插入图片描述
生成对象:
在这里插入图片描述
数据库中也添加了相应的数据:

在这里插入图片描述
如果我们不想看那些对象,想看值,在模型中添加魔法方法

class Person(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField(default=18)
    sex = models.NullBooleanField(default=0)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'person'

运行结果:
在这里插入图片描述

2.个性化站点管理

如果你感觉默认的站点样式不能满足应用需求,则开发者可以通过继承Django定义的管理员数据模型,模板,站点类来开发出个性化的管理员站点。

(1)显示字段

创建管理类:

class PersonAdmin(admin.ModelAdmin):
    # 显示字段
    list_display = ('name','age','sex')

# 默认情况下只能显示一个值  我们可以通过自定义  来查看数据
# admin.site.register(Person)
admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述
由上,我们可以看到姓名,年龄,性别是英文显示,如果想用中文显示,可在模型中添加:

class Person(models.Model):
    name = models.CharField(max_length=32,verbose_name='姓名')
    age = models.IntegerField(default=18,verbose_name='年龄')
    sex = models.NullBooleanField(default=0,verbose_name='性别')

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'person'

运行结果:
在这里插入图片描述

(2)搜索字段

class PersonAdmin(admin.ModelAdmin):

    list_display = ('name','age','sex')
    #搜索字段
    search_fields = ('name','age')

admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述

(3)分页

添加100条数据:
在这里插入图片描述
在这里插入图片描述

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name','age','sex')
    #搜索字段
    search_fields = ('name','age')
    # 分页
    list_per_page = 20
admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述

(4)过滤字段

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name','age','sex')
    #搜索字段
    search_fields = ('name','age')
    # 分页
    list_per_page = 20
    # 过滤字段
    list_filter = ('name','age')

admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述

(5)排序规则

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name','age','sex')
    #搜索字段
    search_fields = ('name','age')
    # 分页
    list_per_page = 20
    # 过滤字段
    list_filter = ('name','age')
    # 排序规则
    ordering = ('-age',)
admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述

(6)分组显示

class PersonAdmin(admin.ModelAdmin):

    list_display = ('name','age','sex')
    #搜索字段
    search_fields = ('name','age')
    # 分页
    list_per_page = 20
    # 过滤字段
    list_filter = ('name','age')
    # 排序规则
    ordering = ('-age',)
    # 分组显示
    fieldsets = (
        ('基本信息',{'fields':('name',)}),
        ('性别',{'fields':('sex',)}),
    )

admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述

(7)布尔值定制显示

比如性别,在list_display的时候可以传递一个函数

class PersonAdmin(admin.ModelAdmin):

    def get_sex(self):
        if self.sex:
            return '男'
        elif self.sex == False:
            return '女'
        else:
            return '非男非女'
    # 设置显示的标题
    get_sex.short_description = '性别'

    list_display = ('name','age',get_sex)
    #搜索字段
    search_fields = ('name','age')
    # 分页
    list_per_page = 20
    # 过滤字段
    list_filter = ('name','age')
    # 排序规则
    ordering = ('-age',)
    # 分组显示
    fieldsets = (
        ('基本信息',{'fields':('name',)}),
        ('性别',{'fields':('sex',)}),
    )

admin.site.register(Person,PersonAdmin)

运行结果:
在这里插入图片描述

(8)后台主题框架

后台主题框架:xadmin和django-simpleui
下面以django-simpleui为例:
安装:django-simpleui:pip install django-simpleui
在settings中配置

INSTALLED_APPS = [
    # 放置第一行
    'simpleui',
     ...
]

运行结果:
在这里插入图片描述
修改标题
在admin.py中添加:

#修改网页title和站点header。
admin.site.site_title = "YFater后台管理"
admin.site.site_header = "YFater's Django"

运行结果:
在这里插入图片描述

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值