文章目录
前言
前一篇文章中,我们大致介绍了如何使用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