Django实战:使用django-filter和django-tables2打造美观的管理后台(附图)

Django自带管理后台(admin)功能强大,几行配置即允许我们对模型数据进行过滤、筛选和增删改查,但是不够美观, 一般仅限内部使用。实际上使用Django自己开发管理后台并不复杂,本项目将演示如何使用django-filter和django-tables2打造功能性强且精美的管理后台,前端使用Boostrap 4。

项目演示效果

下图为Django自带admin对用户管理的界面。

下图是本例使用django-filterdjango-tables2打造的用户管理界面,是不是美观多了? 这个后台支持过滤、重置、按各种字段排序、分页等常见功能。

如果你还不过瘾,可以看下动画效果。

废话不多说,我们开始干吧。关注微信公众号【Python Web与Django开发】,发送消息【Django后台实战】,可以获取GitHub源码地址。

第一步 安装项目依赖

本项目所需的第三方安装包如下所示,均使用了最新版本,保证未来2-3年都不会过时,使用pip安装即可。

 Django==3.2.2
 django-filter==2.4.0 # 自定义过滤字段
 django-tables2==2.3.4  # 自定义表格显示字段
 django-widget-tweaks==1.4.8 # 用户美化表单

建议先创建虚拟环境再pip安装,如果你不会创建和激活虚拟环境,请先阅读https://pythondjango.cn/django/basics/2-installation-use/。

第二步 创建项目和应用

先使用django-admin startproject myproject创建一个名为myproject的应用,接着使用python manage.py startapp users创建一个名为users的app,并把它和其它三个项目依赖加入到settings.py的INSTALLED_APPS中去。

 INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'widget_tweaks', # 项目依赖
     'django_tables2',# 项目依赖
     'django_filters',# 项目依赖
     'users', # 自建应用
 ]

然后把app下的urls路径加入到项目文件夹的urls.py里去。

 from django.contrib import admin
 from django.urls import path, include
 
 urlpatterns = [
     path('admin/', admin.site.urls),
     path('myadmin/', include('users.urls')) # 新增
 ]

整个项目的布局如下所示:

本例使用Django自带的User模型,无需创建模型,但考虑到后续存在切换自定义用户模型的可能性,我们使用get_user_model方法获取用户模型。

修改models.py, 添加如下代码:

 # users/models.py
 from django.contrib.auth import get_user_model
 
 User = get_user_model()

第三步 编写URLs和视图

users 目录下新建urls.py, 添加如下代码:

 # users/urls.py
 from django.urls import path, re_path
 from . import views
 
 app_name = "users"
 
 urlpatterns = [
     path('', views.UserAdminTableView.as_view(), name='user_admin'),
     path('users/create/', views.UserCreateView.as_view(), name='user_create'),
     path('users/<int:pk>/update/', views.UserUp
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值