python + Django + MySQL 系列学习(二)


前言

前一篇文章中,我们大致介绍了如何使用django 和 mysql 进行搭建,这篇文章主要介绍如何通过django+ xadmin来实现我们的后台管理系统


提示:以下是本篇文章正文内容,下面案例可供参考

一、xadmin是什么?

Xadmin是基于bootstrap开发的一套后台管理框架,界面非常美观,只需几步就可以替换自带的Django_admin,比django自带的admin 具有更强大的功能。

二、使用步骤

1.环境

python版本:python3.9
Django版本:Django==2.2

依赖包:
django-crispy-forms == 1.7.2
django-import-export == 1.2.0
django-reversion == 3.0.3
django-formtools == 2.1
future == 0.15.2
httplib2 == 0.9.2
six == 1.10.0
xlwt == 1.3.0
xlsxwriter == 1.1.7
requests == 2.21.0

2. 安装 & 配置 xadmin

(1)xadmin 下载地址:https://github.com/sshwsfc/xadmin/tree/django2
在这里插入图片描述
(2)通过命令进行安装

pip install xadmin-django2.zip

在settings.py中,注册xadmin,INSTALLED_APPS中加入xadmin和crispy_forms和reversion
在这里插入图片描述
(3)也可对时间戳/版本进行修改
也可对时间戳/版本进行修改
(4)在url中配置访问xadmin的网址
(5)通过makemigration 和 migrate 对xadmin同步表

(6)通过createsuperuser 创建超级用户

(7)整个项目启动起来,在浏览器里面输入http://127.0.0.1:8000/xadmin/,进行访问,此时就能看到正确的登录页面了
在这里插入图片描述

3. xadmin 添加导入功能

3.1 背景

由于xadmin 只自带了导出功能,导入功能需要自行添加,使用到django的API (import_export),xadmin已自带安装,无需pip install

依赖安装包如下:
tablib==0.14.0
pyyaml
odfpy

3.2 setting中添加内容

setting.py添加以下两行

    # xadmin 添加导入功能
    'import_export',

# 在导入数据时使用数据库事务,默认False
IMPORT_EXPORT_USE_TRANSACTIONS = True

在这里插入图片描述
在这里插入图片描述

3.3 构建static

在setting 中临时加上,并临时注释掉STATICFILES_DIRS相关信息

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

运行 python manage.py collectstatic
在这里插入图片描述
此时static目录下新增了static/import_export目录

3.4 添加导入插件

在adminx.py 对应产品的ProductInfoAdmin类中,添加以下字段

    import_export_args = {
        'import_resource_class': ProductInfoResource,
        # 'export_resource_class': ProductInfoResource,
    }

其中ProductInfoResource 为自定义类

class ProductInfoResource(resources.ModelResource):

    class Meta:
        model = Product
        # 导入数据时,若是该条数据未修改过,则会忽略
        skip_unchanged = True
        # 在导入预览页面中显示跳过的记录
        report_skipped = True
        # 对象标识的默认字段是id,您可以选择在导入时设置哪些字段用作id
        import_id_fields = ('id',)
        # 白名单
        fields = (
            'id',
            # 'store_name',
            # 'nation',
            # 'product_sku',
            'asin',
            'amazon_sku',
            'marketing_staff',
            'development_staff'
            "cost_of_product",
        )
        # 黑名单
        exclude = (
            'add_time',
            'image',
        )

4. 参考文章

https://www.jb51.net/article/211782.htm
https://www.jianshu.com/p/60c9c3de7d4c
cnblogs.com/yjlch1016/p/11373785.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值