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
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大聪明Smart

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

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

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

打赏作者

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

抵扣说明:

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

余额充值