为什么 Django 后台管理系统那么“丑”?

哈喽大家好,我是咸鱼

相信使用过 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%20admin%27s%20recommended%20use%20is%20limited%20to%20an%20organization%27s%20internal%20management%20tool)

所以 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/200129.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页开发如何实现简易页面跳动/跳转,html课堂练习/作业,页面ABC的相互跳转

先建一个文件夹&#xff0c;文件夹包含三个文件夹&#xff0c;三个文件夹分别包含各自的代码。(可以只建一个文件夹&#xff0c;文件夹包含各页面代码) 页面1的代码&#xff1a; <head> <meta http-equiv"Content-Type" content"text/html; charsetu…

使用Docker部署Python Flask应用的完整教程

一、引言 Docker是一种开源的容器化平台&#xff0c;可以将应用程序及其依赖项打包成一个独立的容器&#xff0c;实现快速部署和跨平台运行。本文将详细介绍如何使用Docker来部署Python Flask应用程序&#xff0c;帮助开发者更高效地构建和部署应用。 二、准备工作 在开始之前…

国产压力测试工具的主要作用

国产压力测试工具可以帮助软件开发和维护团队对系统进行全面的性能测试&#xff0c;以评估系统在高负载下的性能表现。以下是国产压力测试工具的主要作用&#xff1a; 性能评估&#xff1a;国产压力测试工具可以模拟多用户同时对系统进行访问和操作&#xff0c;通过对系统的响应…

​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第15章 面向服务架构设计理论与实践&#xff08;P527~554&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

pycharm 控制台中文乱码处理

今天使用pycharm&#xff0c;发现控制台输出又中文乱码了&#xff0c;看网上很多资料说把编码改为UTF-8&#xff0c;设置为并未生效&#xff0c;特此在此记录下本地设置。 1. 修改文件编码&#xff1a;Setting -> Editor ->File Encodings,修改配置如下&#xff1a; 2. …

ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

【每日OJ —— 225.用队列实现栈(队列)】

每日OJ —— 225.用队列实现栈&#xff08;队列&#xff09; 1.题目&#xff1a;225.用队列实现栈&#xff08;队列&#xff09;2.解法2.1.解法讲解&#xff1a;2.1.1.算法讲解2.1.2.代码实现2.1.3.提交通过展示 1.题目&#xff1a;225.用队列实现栈&#xff08;队列&#xff0…

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解前言MobleNet_V2讲解反向残差结构(Inverted Residuals)兴趣流形(Manifold of interest)线性瓶颈层…

微信小程序记住密码,让登录解放双手

密码是用户最重要的数据&#xff0c;也是系统最需要保护的数据&#xff0c;我们在登录的时候需要用账号密码请求登录接口&#xff0c;如果用户勾选记住密码&#xff0c;那么下一次登录时&#xff0c;我们需要将账号密码回填到输入框&#xff0c;用户可以直接登录系统。我们分别…

力扣贪心——跳跃游戏I和II

1 跳跃游戏 利用边界进行判断&#xff0c;核心就是判定边界&#xff0c;边界内所有步数一定是最小的&#xff0c;然后在这个边界里找能到达的最远地方。 1.1 跳跃游戏I class Solution {public boolean canJump(int[] nums) {int len nums.length;int maxDistance 0;int te…

卷积、卷积图像操作和卷积神经网络

好多内容直接看书确实很难坚持&#xff0c;就比如这个卷积&#xff0c;书上的一大堆公式和图表直接把人劝退&#xff0c;我觉得一般的学习流程应该是自顶向下&#xff0c;先整体后局部&#xff0c;先把握大概再推敲细节的&#xff0c;上来就事无巨细地展示对初学者来说很痛苦。…

2021年03月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 小猫在沙漠中旅行好不容易找到了一杯水,初始位置如下图所示,下面哪个程序可以帮助它成功喝到水? A: B: C: D:

OpenLayers实战,WebGL图层根据Feature要素的变量动态渲染多种颜色的三角形,适用于大量三角形渲染不同颜色

专栏目录: OpenLayers实战进阶专栏目录 前言 本章使用OpenLayers根据Feature要素的变量动态渲染不同颜色的三角形。 通过一个WebGL图层生成四种不同颜色的图形要素,适用于WebGL图层需要根据大量点要素区分颜色显示的需求。 更多的WebGL图层使用运算符动态生成样式的内容将会…

手机弱网测试工具:Charles

我们在测试app的时候&#xff0c;需要测试弱网情况下的一些场景&#xff0c;那么使用Charles如何设置弱网呢&#xff0c;请看以下步骤&#xff1a; 前提条件&#xff1a; 手机和电脑要在同一局域网内 Charles连接手机抓包 一、打开Charles&#xff0c;点击代理&#xff0c;…

黑马React18: 基础Part II

黑马React: 基础2 Date: November 16, 2023 Sum: 受控表单绑定、获取DOM、组件通信、useEffect、Hook、优化B站评论 受控表单绑定 受控表单绑定 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 准备一个React状态值 const [value, se…

万界星空科技QMS质量管理系统功能

QMS质量管理系统结合质量决策、综合质量管理、过程质量控制三个层次要素&#xff0c;帮助企业实现产品全寿命周期质量数据的及时、灵活、准确和全面采集。 通过质量管理软件能够实现质量数据科学处理和应用&#xff0c;包括数据的系统化组织、结构化存贮、便捷式查询、定制化统…

不夸张地说,这是我见过最通俗易懂的,pytest入门基础教程!

Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. 通过官方网站介绍…

京东大数据(京东数据采集):2023年Q3线上投影仪品类销售数据分析报告

11月初&#xff0c;某知名投影仪企业发布了2023年三季度财报。数据显示&#xff0c;今年第三季度&#xff0c;公司营收依然不客观&#xff0c;连续第五个季度业绩持续下滑。 从鲸参谋数据也可以看出&#xff0c;今年Q3&#xff0c;京东平台上该品牌的销量环比下滑约35%&#x…

OpenAI宫斗,尘埃落定,微软成最大赢家

周末被OpenAI董事会闹剧刷屏,ChatGPT之父Sam Altman前一天被踢出董事会,免职CEO,后一天重返OpenAI,目前结局未知。 很多同学想要围观,缺少背景知识,这里老章为大家简单介绍前因后果及涉及的人物,时间线,让大家轻松围观。 备好瓜子,开始。 1、主角 先看一张图,看一…

flink 查看写入starrocks的数据量 总行数

针对该connector: https://github.com/StarRocks/docs.zh-cn/blob/main/loading/Flink-connector-starrocks.md