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.Use
大江狗
关注 关注
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
django-editable-table:具有动态列的简单Django可编辑表
04-30
Django可编辑表 具有动态列的简单Django可编辑表。
教程11 Vue3 + Django前后端分离项目——Element Plus Table 表格(数据增、删、改、除、分页)
boxuestudio的博客
09-25 2449
【代码】教程11 Vue3 + Django前后端分离项目——Element Plus Table 表格(数据增、删、改、除、分页)
Django4:模板(下)—自定义过滤器_django-filterdjango4
最新发布
2401_84254555的博客
04-17 740
虽然DTL给我们内置了许多好用的过滤器。但是有些时候还是不能满足我们的需求。因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求。模版过滤器必须要放在app中,并且这个app必须要在INSTALLED_APPS中进行安装。然后再在这个app下面创建一个Python包叫做templatetags。再在这个包下面创建一个python文件。bookviews.pyurls.pymodels.py在创建了存储过滤器的文件后,接下来就是在这个文件中写过滤器了。
django批量修改table_Django 数据库表多对多的创建和增删改查
weixin_36465108的博客
01-14 442
前面已经学习了在Django里面如何对单表的操作,同时也学习了1对多(单个外键)的表的操作。接下来,我们看看多对多(多个外键)的关系如何创建和管理。比如说,我们有一个主机表,也有一个应用程序表,一个主机可以对应多个程序,一个程序也可以对应多个主机,这是一个典型的多对多的结构。一般来说,我们会在数据库里创建一个中间的表,分别和这两个表进行外键关联。例1. 手动的定义一个HostToApp表,关联到H...
django)04 django表格
akswyh的博客
07-07 1517
(2)注册model 修改admin.py,这个文件是创建了app之后才会有的 (3)migrate 等同于在数据库中执行了 (4)使用django自带后台管理 创建管理员账户 登录http://localhost:8000/admin,效果如下: user_info.html (2)视图 修改views.py (3)路由 修改urls.py (4)效果 boots_table.html (2)视图 修改views.py (3)路由 修改urls.py (4)效果...
django-tables2:简单、灵活且强大的Django表格库
gitblog_00001的博客
03-12 511
django-tables2:简单、灵活且强大的Django表格库 django-tables2是一个用于在Django应用程序中创建美观且易于使用的HTML表格的库。 简介 当你需要在Django视图中呈现大量的数据时,使用表格是一种高效且直观的方式。django-tables2旨在提供一种简洁、可扩展的方式来将任何模型或查询集转换为表格形式。 功能与特性 只需几行代码即可轻松创建表格。 支...
项目开发中使用django_tables2展示数据之切换每页显示数的另类实现方法
心如海的博客
04-18 1445
使用python+django开发web版《IT资产管理系统》过程中,使用django_tables2展示数据,为了实现切换每页显示10行,25行,50行这个功能,需要前端向后端的视图函数传递per_page参数,通用的实现方法是在现有的url后面加上&per_page=XX就可以了,这需要用到request.get_full_path, 因为在测试时遇到了难题,未能实现我要的功能,本...
django-tables2-column-shifter:django-tables2的简单扩展可以动态显示或隐藏列。 使用JQuery,Bootstrap 3,Bootstrap 4,Bootstrap 5和Django> = 1.9
04-29
关于应用程序: django-tables2的简单扩展,可使用jQuery动态显示或隐藏列。 应用程序使用Web存储来存储列是否可见的信息。 使用JQuery,Bootstrap3或Bootstrap4或Bootstrap5以及Django> = 1.9。 警告: -从2.0版...
django-admin-list-filter-dropdown:在Django管理员列表过滤器中使用下拉菜单
02-05
django-admin-list-filter-dropdown 呈现为下拉列表的Django管理过滤器实现。 如果要在Django admin中过滤的字段具有十个以上的值,则过滤侧边栏会变得很长,混乱且难以使用。 此应用程序包含DropdownFilter类,该类...
django-admin-numeric-filter:Django管理员的数值过滤器
05-28
django-admin-numeric-filter为Django admin提供了几个过滤器类,可用于过滤更改列表中的结果。 当将字段名称定义为list时,它在list_filter中起作用,其中第一个值为字段名称,第二个为自定义过滤器类(您可以在...
django-rest-framework-social-oauth2:django-rest-framework的python-social-auth和oauth2支持
02-05
django-rest-framework-social-oauth2:django-rest-framework的python-social-auth和oauth2支持
django-tables2, Django tables2用于创建HTML表的应用程序.zip
10-11
django-tables2, Django tables2用于创建HTML表的应用程序 django-tables2-- 用于创建HTML表格的应用程序 django-tables2简化了将数据集转换为HTML表格的任务。 它对分页和排序有本机支持。 它对HTML表做什么 django.forms 为HTML表单
PyPI 官网下载 | django-tables2-column-shifter-0.3.0.tar.gz
01-31
资源来自pypi官网。 资源全名:django-tables2-column-shifter-0.3.0.tar.gz
django-tables2:django-tables2-用于创建HTML表的应用程序
02-05
django-tables2-用于创建HTML表的应用程序 django-tables2简化了将数据集转换为HTML表的任务。 它具有对分页和排序的本机支持。 django.forms对HTML表格的作用与HTML表相同。 例如 在pypi上作为 针对当前受支持的...
django_table2
Coder
11-05 5407
django-tables2 Internal APIs   Docs » django-tables2 - An app for creating HTML tables  Edit on GitHub django-tables2 - An app for creating HTML tables django
django_tables2 使用上一些问题
yrx0619的专栏
12-07 2382
django_tables2 是一个django的插件,可以很方便的构建表类型的数据。 最近使用过程中遇到一些问题,这里记录一下。 0x01 系统环境 djangodjango.1.9.8 django_tables2: django_tables2-1.16.0-py2.7 0x02 使用问题 使用自定义table模板: 最新的django_tables2文档中,默认使用的table模...
Django实战: 手把手教你配置Django SimpleUI打造美丽后台(多图)
热门推荐
大江狗
05-13 1万+
很多人对Django自带的管理后台admin是又爱又恨,优点是几行代码配置就可以撸出一个功能性强的管理后台,缺点就是不怎么美观,感觉拿不出手。在所有的Django后台美化插件中,Simpl...
解决 django-markdown的table样式问题
CarveStone的博客
01-11 475
问题描述 写入的表格式 markdown 渲染后的效果 表的 html 结构 这是插入代码生成的 html 现在生成的 table 是没有类名的,如果直接给 table 加样式会影响到插入代码的样式。 解决方法: 使用像代码块那样的方法生成<pre><code></code></pre>把代码包起来 更改markdown扩展(此方法未解决) 使用 js 找到 table ,用 div 把表格包起来 <script> [].s
Django后台admin应用SimpleUI实战
微雨停了的博客
05-15 1万+
文章目录一、SimpleUI是什么二、安装SimpleUI2.1 pip安装2.2 应用注册2.3 注册超级管理员2.3 登陆验证三、美化SimpleUI3.1 设置中文3.2 更换后台登陆logo3.3 屏蔽右侧广告3.4 更改管理后台名字3.5 验证四、admin后台数据管理4.1 查看users数据表4.2 编辑users应用中admin.py文件4.3 自定义列表4.4 自定义菜单4.5 如果一个项目有多个应用、一个应用有多个model表4.5.1 一个app注册多个model — admin.py
django CORs policy: No 'Access-Control-Alow-Origin' header is present on the reguested resource
05-30
这个错误通常是由于浏览器中的CORS(跨域资源共享)政策限制导致的。要解决这个问题,你可以尝试在Django使用django-cors-headers来添加正确的CORS头部信息。 安装django-cors-headers: ``` pip install django-cors-headers ``` 然后,在Django的settings.py文件中添加以下配置: ``` INSTALLED_APPS = [ # ... 'corsheaders', # ... ] MIDDLEWARE = [ # ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # ... ] CORS_ORIGIN_ALLOW_ALL = True ``` 这将允许所有的跨域请求。如果你只想允许特定的域名请求,可以将CORS_ORIGIN_ALLOW_ALL设置为False并添加以下配置: ``` CORS_ORIGIN_WHITELIST = [ 'http://your-allowed-domain.com', # ... ] ``` 希望这能帮助你解决问题!

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Django 2.0 官方中文文档终于发布啦! 附链接! 53632
  • Django基础(23): 权限管理(permissions)与用户组(group)详解 47818
  • Django缓存Cache详解 39231
  • uWSGI的安装及配置详解 32273
  • django的优缺点总结 - Python Web开发面试必备 31421

分类专栏

  • 一文看懂Python系列 6篇
  • Django基础连载 73篇
  • Django 106篇
  • Python 37篇

最新评论

  • Django实战: 手把手教你配置Django SimpleUI打造美丽后台(多图)

    mengmeng2022: 你好,我想用不同按钮来展示不同的左侧菜单,该怎么做呢,不知道用什么来绑定起来

  • 使用宝塔面板快速部署Django项目

    情圣也轻生: 没有看到 Python manage.py migrate 指令 , 请问是哪个环节给他自动化实现了

  • Django实战:channels + websocket四步打造个在线聊天室(附动图)

    崖高人远: 补充,如果使用runserver方式启动,那么聊天室的消息是发不出去的。需要使用asgi服务器启动才行,比如daphne。 daphne -b 0.0.0.0 -p 8000 myproject.asgi:application

  • Docker部署Django由浅入深系列(下): 八步部署Django+Uwsgi+Nginx+MySQL+Redis

    古埙: uwsgi --ini /var/www/html/docker_test/uwsgi.ini这是uwsgi的启动文件,在Dockerfile中启动时CMD ["sh", "-c", "./tools/start_uwsgi.sh && tail -f /dev/null"]这样的,是否可以直接启动python项目,我可以进ngingx但是python好像进不去

  • Python常用第三方库大全, 值得收藏!

    pursuing1: 为什么要用女生头像,咱们码农不吃这套

大家在看

  • 金鸣识别:图片转excel的“黑科技”神器
  • PopupWindow+RecyclerView实现下拉选择Spinner
  • 线上录题兼职小心是骗局!
  • java青青网教代码
  • 仪表运放输入端抗RFI滤波器设计注意事项

最新文章

  • Django 5.0解析:最新功能和特色的综合指南-2023 年 12 月的完美礼物
  • Django 4.2发布,主要变化小结!
  • 这一次,Python 真的有望告别 GIL 锁了?
2023年3篇
2022年16篇
2021年85篇
2020年84篇
2019年32篇
2018年91篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司营口高端网站设计报价西宁外贸网站设计公司韶关网站搜索优化多少钱遂宁外贸网站建设吉安品牌网站设计吕梁seo德阳关键词排名包年推广报价泰州企业网站制作多少钱广元seo网站优化价格霍邱网站建设价格濮阳网站推广报价中山网站定制多少钱贵港网站推广工具公司阜阳seo排名推荐龙华网站开发桂林SEO按天计费推荐黔东南英文网站建设多少钱九江网站优化推荐那曲网站关键词优化价格岳阳SEO按效果付费黄南网站设计推荐营口建设网站哈尔滨阿里店铺运营推荐株洲优秀网站设计报价荆门百度爱采购汕头网站建设设计推荐漳州模板制作长治seo排名报价固原模板网站建设价格黄山网站改版报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化