Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式

下面我将详细讲解“Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式”的完整攻略。

1. 导入json数据

1.1 准备数据

首先需要准备数据,将需要导入的数据以json格式保存。假设我们有一个名为book.json的文件,该文件的内容如下所示:

[
  {
    "name": "The Great Gatsby",
    "author": "F. Scott Fitzgerald",
    "published_date": "1925-04-10",
    "pages": 180
  },
  {
    "name": "To Kill a Mockingbird",
    "author": "Harper Lee",
    "published_date": "1960-07-11",
    "pages": 281
  }
]

1.2 创建model

假设我们已经有一个名为Book的model,用于保存书籍信息。我们需要为该model添加一个导入数据的方法:

class Book(models.Model):
    name = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    published_date = models.DateField()
    pages = models.PositiveIntegerField()

    @staticmethod
    def import_data(file_path):
        with open(file_path, 'r') as f:
            data = json.load(f)
            for item in data:
                book = Book(
                    name=item['name'],
                    author=item['author'],
                    published_date=item['published_date'],
                    pages=item['pages']
                )
                book.save()

1.3 创建admin

我们需要为Book添加一个xadmin的admin:

import xadmin
from .models import Book


class BookAdmin(object):
    list_display = ['name', 'author', 'published_date', 'pages']
    actions = ['import_from_json']

    def import_from_json(self, request, queryset):
        for obj in queryset:
            obj.import_data('path/to/book.json')

    import_from_json.short_description = '从json文件导入数据'

xadmin.site.register(Book, BookAdmin)

注意,在BookAdmin中,我们为actions添加了一个import_from_json方法,并将其放在了book列表页的操作区。

1.4 导入数据

完成上述步骤后,我们就可以在book列表页中看到import_from_json操作了。我们点击该操作,即可将book.json中的数据导入到数据库中。

2. 显示信息图标和更改主题

2.1 安装静态文件

首先需要安装xadmin的静态文件。可以通过pip安装或者将源码下载下来自己安装。

pip install xadmin

2.2 修改配置文件

我们需要在Django的settings.py文件中加入以下配置:

# xadmin 配置
INSTALLED_APPS = ['xadmin', 'crispy_forms']  #添加 'crispy_forms'AppName,否则后台换肤css样式会有冲突
XADMIN_CONF = {
    # 菜单栏展开
    'site_title': 'My Site',
    'site_footer': 'Powered By Django Xadmin',
    'menu_style': 'accordion',
}

2.3 添加主题皮肤

我们可以在xadmin的主题皮肤库找到自己喜欢的主题,将主题保存到本地。

2.4 替换静态文件

将下载的主题放入xadmin的静态文件夹下,同时将xadmin的css中的文件路径修改为我们刚才下载主题的路径。

<link rel="stylesheet" type="text/css" href="/static/xadmin/css/ui.css">

修改为:

<link rel="stylesheet" type="text/css" href="/static/theme/ui.css">

2.5 显示信息图标

我们可以使用fontawesome为xadmin添加图标。在html文件中通过以下方式引入fontawesome:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

然后在需要添加图标的地方增加以下内容:

<i class="fa fa-info-circle"></i>  #以添加信息的图标为例

完成上述步骤后,我们就可以在xadmin后台看到自己喜欢的主题,同时也可以添加图标显示信息。

示例1:将xadmin后台主题换成黑色主题

  1. 下载xadmin主题:https://github.com/jsspurs/xadmin-webssh-theme,此主题名称为webssh

  2. 解压到static路径下static/theme/webssh,并将解压后的themes文件夹下所有文件复制到xadmin主题路径下static/xadmin下

  3. 应用方式:

# settings.py文件
XADMIN_CONF = {
    # 菜单栏展开
    'site_title': 'My Site',
    'site_footer': 'Powered By Django Xadmin',
    'menu_style': 'accordion',
    # 使用xadmin后台主题
    # 'theme': 'default'  # 白色主题
    'theme': 'webssh'      # 黑色主题
}

示例2:在xadmin后台显示信息图标

  1. 下载fontawesome:https://fontawesome.com/v4.7.0/icons/,此图标为fa fa-info-circle

  2. 在html页面中引入fontawesome:

<head>
    <meta charset="UTF-8">
    <title>{{ site_title|default:_('Django site admin') }}</title>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="/static/xadmin/vendor/xadmin/jquery-migrate-1.2.1.min.js"></script>
    <link rel="icon" href="data:image/png;base64,iVBORw0KG...>

    <!-- 引入fontawesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    {% load static %}

    <!-- 引入自定义css文件 -->
    <link rel="stylesheet" href="{% static 'xadmin/css/site-custom.css' %}">
    <link rel="stylesheet" type="text/css" href="{% static 'xadmin/css/xadmin.css' %}">
</head>
  1. 在需要引用图标的地方增加以下html代码:
<span>
  <a title="详情" href="javascript:void(0)" onclick="xadmin.open_iframe('View','/airdata/thresholddata/{{obj.id}}/view','500px','400px')" style="text-decoration:none">
        <i class="fa fa-info-circle balck"></i>
  </a>
</span>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • django模板语法学习之include示例详解

    针对“django模板语法学习之include示例详解”的攻略,我会从以下几个方面进行详细讲解: include标签介绍 include标签的使用方法 include标签的示例说明 总结和建议 1. include标签介绍 include标签是Django模板语言中的一个重要标签,可以用于加载其他模板文件,将其他模板文件中的代码合并到当前模板中。includ…

    人工智能概论 2023年5月25日
    00
  • 基于Python和openCV实现图像的全景拼接详细步骤

    针对“基于Python和OpenCV实现图像的全景拼接详细步骤”的攻略,我将分以下六步来进行讲解: 一、收集全景图像 收集需要进行全景拼接的图像,并确保每张图像的重叠部分不小于30%。最好使用三张及以上的图像进行拼接,以获得更好的效果。 二、确定需求 确定需要哪些库和模型来进行拼接,并安装相应的Python库。 三、确定图像的关键点 使用特征匹配算法确定每张…

    人工智能概论 2023年5月24日
    00
  • Django MTV和MVC的区别详解

    Django MTV和MVC的区别详解 什么是MVC? MVC,即 Model-View-Controller,是一种常见的软件架构模式,常用于Web应用程序和图形用户界面(GUI)设计。在MVC模式中,应用程序被分为三个主要部分:模型,视图和控制器。 模型(Model):存储应用程序的数据,并负责管理数据。它与数据库交互,对数据进行操作。 视图(View)…

    人工智能概览 2023年5月25日
    00
  • 关于Django外键赋值问题详解

    下面我来为你详细讲解“关于Django外键赋值问题详解”。 1. 外键赋值问题 在Django中,使用外键关系需要赋值,通常情况下可以通过实例化对象、外键属性、id值等属性进行外键赋值,但在实际情况下可能会出现外键赋值失败的情况,这时需要注意以下几点: 确认外键关系是否正确 确认外键赋值数据是否正确 确认外键赋值方法是否正确 2. 关于外键赋值数据格式问题 …

    人工智能概论 2023年5月25日
    00
  • Dubbo本地开发技巧分享

    Dubbo本地开发技巧分享 Dubbo是一个高性能、轻量级的Java RPC框架,被广泛应用于微服务架构中。在进行Dubbo应用开发时,本地开发是必不可少的环节,因此掌握一些Dubbo本地开发技巧是非常有必要的。 本文将会分享几个Dubbo本地开发技巧,包括Dubbo本地开发环境的配置、Dubbo服务的本地调用等。 环境配置 在进行本地开发前,需要首先配置本…

    人工智能概览 2023年5月25日
    00
  • Linux系统中查找正在运行的nginx目录

    要查找正在运行的 Nginx 目录,我们可以分为以下几个步骤: 查看 Nginx 进程的 PID。 通过 PID 找到 Nginx 的安装目录。 第一步:查看 Nginx 进程的 PID 可以使用 ps 命令查找正在运行的 Nginx 进程。命令格式如下: ps aux | grep nginx ps 命令:用于查看进程信息。 aux 选项:显示所有用户和所…

    人工智能概览 2023年5月25日
    00
  • Linux系统下Navicat 激活教程详解

    下面我将详细讲解“Linux系统下Navicat 激活教程详解”的完整攻略: Linux系统下Navicat 激活教程详解 前言 Navicat 是一款数据库管理工具,提供了丰富的功能,可以帮助我们高效地管理数据库。而在Linux系统下,Navicat的破解和激活是比较困难的一件事情。本文将为大家详细讲解Linux系统下Navicat的激活教程。 具体步骤 …

    人工智能概览 2023年5月25日
    00
  • 字幕编辑器(subtitle edit)如何设置?subtitle edit使用教程

    下面我将详细讲解“字幕编辑器(subtitle edit)如何设置?subtitle edit使用教程”的完整攻略。 1. 字幕编辑器(subtitle edit)的设置 字幕编辑器(subtitle edit)是一款免费的开源软件,它可以帮助我们编辑、同步电影、视频等媒体文件中的字幕。在使用字幕编辑器前,我们需要先对其进行一些设置,以便更好地使用这个软件。…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部