Django博文数据可视化simple-ui优化导入导出插件

Posted 大聪明Smart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django博文数据可视化simple-ui优化导入导出插件相关的知识,希望对你有一定的参考价值。

Django博文数据可视化、simple-ui优化、导入导出插件

今日任务

  1. django博客admin优化
  2. 导入导出插件
  3. DRF的action装饰器
  4. 博文数据可视化

昨日未解决问题

django-admin修改密码后账户失效问题

今日内容

django博客admin优化

后台我们使用了simple-ui插件,所以针对模板是对它的优化。

其他像展示和搜索按钮直接在ModelAdmin中修改即可。

admin优化

展示字段设置

我要对UserInfo表多展示几个字段,不是只展示用户名。

首先,自定义一个管理类,继承admin.ModelAdmin,然后更改它的list_display即可。最后不要忘记注册时添加你的管理类。

from django.contrib import admin


class UserManager(admin.ModelAdmin):
    list_display = ['username', 'email', 'is_active', 'last_login']
    
    
admin.site.register(models.UserInfo, UserManager)

添加过滤器

使用admin注册装饰器实现,展示字段当是外键时,我们用函数处理

def category(obj):
    return obj.category.name


@admin.register(models.Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ['title', category, 'update_time']  # 可以是一个函数
    list_filter = ['title']  # 过滤器
    form = ArticleForm

添加点击链接

class LinkManager(admin.ModelAdmin):
    list_display = ['title', 'desc']
    list_display_links = ['title', 'desc']   # 给那个字段加url


admin.site.register(models.Links, LinkManager)

可编辑字段

注意:不能给links中的字段添加editable

class LinkManager(admin.ModelAdmin):
    list_display = ['title', 'desc', 'is_disply']
    list_editable = ['is_disply']  # 可编辑的字段
    list_display_links = ['title', 'desc']   # 给那个字段加url

simple-ui优化

重写simple-ui的模板html文件

我想去掉右边的simple-ui的版本和链接展示那块,需要重写它的home页面

首先,比对simple-ui的目录结构,我也在我的项目下的template文件夹下建立相同的目录结构

也就是在我的项目下的templates文件夹下建立一个admin文件夹,然后像重写哪个html,就建立一个同名html文件即可。

我看到主页就是home.html,里边预留的钩子不多,所以直接把他全部复制过来,删掉不想要的即可。

image-20210517135519722

另一种方法就是直接在配置文件中修改:

# simpleui配置
SIMPLEUI_HOME_INFO = False

simpleui都可通过配置项修改,前边的重写是一种思想,包括重写django-admin自带的一些模板文件也是同样的操作步骤。

左侧边栏自定义添加项

查看官方文档

SIMPLEUI_CONFIG = {
    'system_keep': True,
    # 'menu_display': ['Simpleui', '测试', '权限认证', '动态菜单测试'],      # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
    'dynamic': True,  # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
    'menus': [
        {
            'name': '可视化',
            'icon': 'fa-fw fa fa-leaf',
            'models': [{
                'name': '文章报表',
                'icon': 'far fa-surprise',
                'url': 'https://www.baidu.com'
            }]
        },
    ]
}

image-20210517142833166

导入导出插件

安装

pip3 install django-import-export

使用

去app中注册

INSTALLED_APPS = [
    'simpleui',
    'import_export',
]

配置IMPORT_EXPORT_USE_TRANSACTIONS,默认值为False。它确定库是否会在数据导入中使用数据库事务,以确保安全。

# 导入导出
IMPORT_EXPORT_USE_TRANSACTIONS = True

在admin.py文件中给想要添加导入导出的表的管理类继承ImportExportModelAdmin即可,这个插件实际上也是对django的ModelAdmin进行一个重写并扩展功能。

@admin.register(models.Article)
class ArticleAdmin(ImportExportModelAdmin):
    list_display = ['title', category, 'update_time', 'is_display']
    list_editable = ['is_display']
    list_filter = ['title']
    form = ArticleForm

image-20210517144405672

smartchart数据可视化

安装

pip install smartchart

使用

安装完成后需要去git上面拉取模版以及静态文件
地址:https://github.com/JohnYan2017/SmartCharts
# 对应的项目目录说明:

templates/echart   -- 编辑器界面
templates/index    -- 首页Portal
static/echart         -- 扩展前端数据处理函数(图形编辑中可用)
static/editor         -- 编辑器界面js
static/index          -- Portal对应js, css
static/custom       -- 你可以在此新建人个文件夹存放自定义css, js, image ..

# settings,py
INSTALLED_APPS = [
    'simpleui',  # 在导入初始化admin之前导入UI库进行页面的美化
    'xxxxx',
    'xxxx',
    'xxx',
    'smart_chart.echart',   # 注册app
]

# 注释调MIDDLEWARE里面的
django.middleware.clickjacking.XFrameOptionsMiddleware

# 更改时区配置
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

# urls.py加入路由
    path('echart/',include('smart_chart.echart.urls')),  # 注册一个图表的路由
    path('',RedirectView.as_view(url='echart/index/')),  # 跳转到chart的首页

# 数据库迁移
# 首先生成迁移文件并迁移
python manage.py makemigrations 
python manage.py migrate
# 创创建超级管理员
python manage.py createsuperuser

# 运行Django项目,访问一下 下面这条路由进行数据初始化
http://127.0.0.1:8000/echart/init_db/

# 到此已经完成一个SmartChart项目的创建

试了试不太好搞。

python数据可视化

绘图工具

基于python

pyecharts

官方文档

pip install pyecharts

数据清晰

下一步打算要学习的东西

  1. numpy
  2. pandas
  3. pyecharts

以上是关于Django博文数据可视化simple-ui优化导入导出插件的主要内容,如果未能解决你的问题,请参考以下文章

Django搭建个人博客平台4---后台admin优化simpleui和导入导出

Django搭建个人博客平台4---后台admin优化simpleui和导入导出

《实战JAVA虚拟机 JVM故障诊断与性能优化》 思维导图

梯度下降无约束最优化问题

PyTorch 图像识别实战

关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法