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

2023-10-19 07:50

本文主要是介绍Django站点管理:简介、个性化站点管理,后台主题框架(django-simpleui),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一.简介
  • 二.站点管理
    • 1.基本使用
    • 2.个性化站点管理
      • (1)显示字段
      • (2)搜索字段
      • (3)分页
      • (4)过滤字段
      • (5)排序规则
      • (6)分组显示
      • (7)布尔值定制显示
      • (8)后台主题框架

一.简介

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.nameclass 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.nameclass 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"

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

这篇关于Django站点管理:简介、个性化站点管理,后台主题框架(django-simpleui)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/238414

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Django序列化中SerializerMethodField的使用详解

《Django序列化中SerializerMethodField的使用详解》:本文主要介绍Django序列化中SerializerMethodField的使用,具有很好的参考价值,希望对大家有所帮... 目录SerializerMethodField的基本概念使用SerializerMethodField的

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结