哈喽大家好,我是咸鱼

相信使用过 Django 的小伙伴都知道 Django 有一个默认的后台管理系统——Django Admin

它的 UI 很多年都没有发生过变化,现在看来显得有些“过时且简陋”



那为什么 Django 的维护者却不去优化一下呢?原文作者去询问了多位维护者了解了其历史和”为什么这么设计“

下面让我们来一起看下

当我在 Djangocon US 上跟别人交流时,一个问题总是不断被提及:“为什么 Django Admin 那么的 ’丑陋‘ ?”

Djangocon US 是一个为期五天的国际会议,由 Django web 框架社区举办,每年在北美举行

在这个会议上,从全世界各地而来的 Django 开发者都能够学到使用 Django 构建的各种应用程序的细节,深入理解已经熟悉的概念

我在这里解释一下,请原谅这个标题是为了引人注意才起的,但这个问题有很多种形式:

  • 为什么 Django Admin 有一个过时的 UI ?
  • 为什么这些年来 Django Admin 没有太大的变化?
  • 为什么 Django Admin 没有插入(insert)功能

作为一个老前辈(我第一次参加 Djangocon 是 2012 年,可以说是一个世纪以前的 web 开发时代),我的答案是:Django Admin 这么”丑陋“是为了阻止你把它交给客户或者最终用户

Janelle 想知道真正的答案,为了不让她失望,我接受了她的挑战。我四处寻找,穿过广阔的会议室和笔记本电脑屏幕,寻求 Django 维护者的智慧,我从一名老师变成了学生

”Django Admin 并不丑。更确切地说,(Django 维护者们)并没有努力让它成为一个漂亮的终端用户工具“ ,Ken Whitesell 说

Ken Whitesell 是 Django 的长期用户,也是 Django 社区中的常客,他从 1.2 版本开始就开始使用 Django,Ken 接着指出,问题的答案就在 Django 文档中显眼的位置:

”Django Admin 的用途仅限于组织的内部管理工具,它不是用来构建整个前端的“

Ken 还说这个问题在 Django 论坛中一次又一次地出现(https://forum.djangoproject.com/search?q=The admin's recommended use is limited to an organization's internal management tool)

所以 Ken 的回答让我知道了 ”how“ ,我现在想知道 ”why“:为什么 Django admin 故意被设计成这样

”Django admin 是为 Phil 构建的“,Jacob Kaplan-Moss说

Django 的共同创建者 Jacob 给了我漂亮的答案,Phil 指的是 Phil Cauthon,Phil 当时是 Lawrence.com 周报的编辑,这是有史以来最早建立的 Django 网站之一

因为 Django 最初是用于制作在线新闻 Web 站点,Django admin 由内部人员使用,内部人员知道该如何使用它。”如果某些内容被编辑或搞砸了,你可以走到别人的办公桌前,问‘你为什么这么做?’ ”Jacob 讲述了最初的 Django 管理工作流程

Ken 和 Jacob 都达成了共识,这也与我的答案一致,Django admin 更多的是组织管理和信任。

你可以在管理/组织/政治上控制谁使用 Django admin 以及他们用 Django admin做什么,你对员工有一定程度的信任。你不需要投入时间和精力使 Django admin成为面向客户的工具,供不熟悉您的产品的人使用

”甚至在 0.9x 版本中,我们会发现一张图片上面写着:Django admin不是你的应用程序“,Curtis Maloney 说

Curtis Maloney 在网上被称为 FunkyBob,他回忆起 Django 早期的时候说,”甚至在 0.9x 版本中,我们会发现一张图片上面写着:Admin 不是你的应用程序“

Curtis 和我都认为 Django admin 是一个很棒的数据库工具,而且大家也应该这样去对待它

正如 Curtis 所说,”鼓励大家去构建自己的管理界面,并把 Django admin 当作一个数据库管理工具,这为很多人节省了痛苦,定制它的努力比回报快得多“

总之,Django admin 仍是人类使用的工具,所以我们应该继续改进它让它更容易访问

最后,如果你发现需要将 Django admin 交给客户或者最终用户,请考虑使用 Wagtail ModelAdmin,它几乎跟 Django admin 一模一样(而且与现有的 Django admin 一起运行)

Wagtail ModelAdmin 具有巨大的可访问性、细粒度的控制和为非技术最终用户构建的良好的用户体验

原文链接:https://www.coderedcorp.com/blog/why-is-the-django-admin-ugly/

为什么 Django 后台管理系统那么“丑”?的更多相关文章

  1. django后台管理系统(admin)的简单使用

    目录 django后台管理系统的使用 检查配置文件 检查根urls.py文件 启动项目,浏览器输入ip端口/admin 如: 127.0.0.1/8000/admin 回车 注册后台管理系统超级管理 ...

  2. Django后台管理系统的使用

    目录 django后台管理系统的使用 检查配置文件 检查根urls.py文件 启动项目,浏览器输入ip端口/admin 如: 127.0.0.1/8000/admin 回车 注册后台管理系统超级管理 ...

  3. Django后台管理系统讲解及使用

    大家在创建Django项目后,在根路由urls.py文件中,会看到一行代码 from django.contrib import admin urlpatterns = [ url(r'^admin/ ...

  4. 【tips】xadmin - django第三方后台管理系统

    Django 为大家提供了一个完善的后台管理系统—admin,但是这个后台管理系统总体来说不太适合国人的习惯,所以有大神就使用 bootstrap 和 jQuery,为我们开发了一个第三 方的 Dja ...

  5. PHP与最丑的后台管理系统

    第二天阿Q到公司还是比较早,同事只有阿梅在,阿Q坐在椅子上旋转来旋转去,有点像个小孩子.公司有书柜,书柜上放了好几本很新的php的书,.net的书反倒比较少而且显得老旧.阿Q起身走过去拿了本php翻了 ...

  6. Django学习(四) Django提供的后台管理系统以及如何定义URL路由

    一旦你建立了模型Models,那么Django就可以为你创建一个专业的,可以提供给生成用的后台管理站点.这个站点可以提供给有权限的人进行已有模型Models数据的增删改查. 将新建的模型Models是 ...

  7. 4、Django实战第4天:xadmin快速搭建后台管理系统

    Django默认为我们提供了后台管理系统admin, urls.py中配置的第一条就是访问后台管理系统admin的 urlpatterns = [ url(r'^admin/', admin.site ...

  8. 可插拔式后台管理系统(Django)

    1.实现效果 研究了下django admin的功能,自己实现了一个简单的可插拔式后台管理系统,方便自定义特殊的功能,而且作为一个独立单独的django app,可以整体拷贝到其他项目中作为后台数据管 ...

  9. Django的后台管理系统Admin(5)

    Django的后台管理系统就是为了方便管理员管理网站,所以django自带了一个后台管理系统,接下来记录一下如何使用这个后台的管理系统. 首先我们要进入后台管理系统,就要有一个管理员的账号,先来创建有 ...

  10. ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox

    系列目录 https://yunpan.cn/cZVeSJ33XSHKZ  访问密码 0fc2 今天整合lightbox插件Fancybox1.3.4,发现1.3.4版本太老了.而目前easyui 1 ...

随机推荐

  1. 重返照片的原始世界:我为.NET打造的RAW照片解析利器

    重返照片的原始世界:我为.NET打造的RAW照片解析利器 如果你是我的老读者,你可能还记得,在2019年,我冒险进入了一片神秘的领域--用C#解析RAW格式的照片: 20191208 - 用.NET解 ...

  2. 牛客小白月赛65 E题 题解

    原题链接 题意描述 构造一个\(1\)到\(n\)的排列,使得其中正好有\(k\)个二元组\((i, j)\)满足,\(1\le i\lt j\le n\) && \(a_i - a_ ...

  3. Hadoop集群启动没有DataNode进程

    问题状况: 问题原因: 在启动Hadoop之前,进行了多次格式化,导致DataNode的ID发生了变化 解决方案: 我们可以删除从节点所有的DataNode资料,并重新格式化 解决流程 1.根据cor ...

  4. 二代水务系统架构设计分享——DDD+个性化

    系统要求 C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护.相比于一代Winform,界面要求美观,控件丰富可定制. 解决方案 依托.Net6开发平台,采用模块化思想设计(即分而治之的 ...

  5. 组合查询(left_inner_right)与排序(order by _DESC _ASC)在题目中的应用

    1,想要让哪一列放在开头或者结尾,只需要将select中的查询位置放在最开始或者结尾即可: 2,组合查询要注意使用 on 加上组合条件: 3,order by 默认升序(ASC),降序使用:order ...

  6. 《Kali渗透基础》07. 弱点扫描(一)

    @ 目录 1:漏洞发现 1.1:Exploit-DB 1.2:searchsploit 1.3:nmap 2:漏洞管理 3:弱点扫描类型 4:漏洞基本概念 4.1:CVSS 4.2:CVE 4.3:O ...

  7. [EasyExcel] 导出合并单元格

    前言 使用spring boot 对excel 进行操作在平时项目中要经常使用.常见通过jxl和poi 的方式进行操作.但他们都存在一个严重的问题就是非常的耗内存.这里介绍一种 Easy Excel ...

  8. react18-webchat网页聊天实例|React Hooks+Arco Design仿微信桌面端

    React18 Hooks+Arco-Design+Zustand仿微信客户端聊天ReactWebchat. react18-webchat基于react18+vite4.x+arco-design+ ...

  9. .NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!

    这是我们计划在今年晚些时候发布的最终.NET 8版本之前的两个候选版本中的第一个.大部分计划中的功能和变更都包含在这个候选版本中,可以供您尝试使用.您可以在文档中找到完整的ASP.NET Core在. ...

  10. Kafka Stream 流和状态

    4.2将状态操作应用到Kafka Stream 在上图的拓扑中生成了一个购买-交易事件流,拓扑中的一个处理节点根据销售额来计算客户的奖励级分.但在这个处理其中,要做的也仅仅时计算单笔交易的总积分,并转 ...