為什么 Django 后臺(tái)管理系統(tǒng)那么"丑"?
哈嘍大家好,我是咸魚(yú)
相信使用過(guò) Django 的小伙伴都知道 Django 有一個(gè)默認(rèn)的后臺(tái)管理系統(tǒng)——Django Admin
它的 UI 很多年都沒(méi)有發(fā)生過(guò)變化,現(xiàn)在看來(lái)顯得有些“過(guò)時(shí)且簡(jiǎn)陋”
圖片
那為什么 Django 的維護(hù)者卻不去優(yōu)化一下呢?原文作者去詢(xún)問(wèn)了多位維護(hù)者了解了其歷史和”為什么這么設(shè)計(jì)“
下面讓我們來(lái)一起看下
當(dāng)我在 Djangocon US 上跟別人交流時(shí),一個(gè)問(wèn)題總是不斷被提及:“為什么 Django Admin 那么的 ’丑陋‘ ?”
Djangocon US 是一個(gè)為期五天的國(guó)際會(huì)議,由 Django web 框架社區(qū)舉辦,每年在北美舉行
在這個(gè)會(huì)議上,從全世界各地而來(lái)的 Django 開(kāi)發(fā)者都能夠?qū)W到使用 Django 構(gòu)建的各種應(yīng)用程序的細(xì)節(jié),深入理解已經(jīng)熟悉的概念
我在這里解釋一下,請(qǐng)?jiān)忂@個(gè)標(biāo)題是為了引人注意才起的,但這個(gè)問(wèn)題有很多種形式:
- 為什么 Django Admin 有一個(gè)過(guò)時(shí)的 UI ?
- 為什么這些年來(lái) Django Admin 沒(méi)有太大的變化?
- 為什么 Django Admin 沒(méi)有插入(insert)功能
作為一個(gè)老前輩(我第一次參加 Djangocon 是 2012 年,可以說(shuō)是一個(gè)世紀(jì)以前的 web 開(kāi)發(fā)時(shí)代),我的答案是:Django Admin 這么”丑陋“是為了阻止你把它交給客戶(hù)或者最終用戶(hù)
Janelle 想知道真正的答案,為了不讓她失望,我接受了她的挑戰(zhàn)。我四處尋找,穿過(guò)廣闊的會(huì)議室和筆記本電腦屏幕,尋求 Django 維護(hù)者的智慧,我從一名老師變成了學(xué)生
”Django Admin 并不丑。更確切地說(shuō),(Django 維護(hù)者們)并沒(méi)有努力讓它成為一個(gè)漂亮的終端用戶(hù)工具“ ,Ken Whitesell 說(shuō)
Ken Whitesell 是 Django 的長(zhǎng)期用戶(hù),也是 Django 社區(qū)中的常客,他從 1.2 版本開(kāi)始就開(kāi)始使用 Django,Ken 接著指出,問(wèn)題的答案就在 Django 文檔中顯眼的位置:
”Django Admin 的用途僅限于組織的內(nèi)部管理工具,它不是用來(lái)構(gòu)建整個(gè)前端的“
Ken 還說(shuō)這個(gè)問(wèn)題在 Django 論壇中一次又一次地出現(xiàn)(https://forum.djangoproject.com/search?q=The%20admin%27s%20recommended%20use%20is%20limited%20to%20an%20organization%27s%20internal%20management%20tool)
所以 Ken 的回答讓我知道了 ”how“ ,我現(xiàn)在想知道 ”why“:為什么 Django admin 故意被設(shè)計(jì)成這樣
”Django admin 是為 Phil 構(gòu)建的“,Jacob Kaplan-Moss說(shuō)
Django 的共同創(chuàng)建者 Jacob 給了我漂亮的答案,Phil 指的是 Phil Cauthon,Phil 當(dāng)時(shí)是 Lawrence.com 周報(bào)的編輯,這是有史以來(lái)最早建立的 Django 網(wǎng)站之一
因?yàn)?Django 最初是用于制作在線(xiàn)新聞 Web 站點(diǎn),Django admin 由內(nèi)部人員使用,內(nèi)部人員知道該如何使用它?!比绻承﹥?nèi)容被編輯或搞砸了,你可以走到別人的辦公桌前,問(wèn)‘你為什么這么做?’ ”Jacob 講述了最初的 Django 管理工作流程
Ken 和 Jacob 都達(dá)成了共識(shí),這也與我的答案一致,Django admin 更多的是組織管理和信任。
你可以在管理/組織/政治上控制誰(shuí)使用 Django admin 以及他們用 Django admin做什么,你對(duì)員工有一定程度的信任。你不需要投入時(shí)間和精力使 Django admin成為面向客戶(hù)的工具,供不熟悉您的產(chǎn)品的人使用
”甚至在 0.9x 版本中,我們會(huì)發(fā)現(xiàn)一張圖片上面寫(xiě)著:Django admin不是你的應(yīng)用程序“,Curtis Maloney 說(shuō)
Curtis Maloney 在網(wǎng)上被稱(chēng)為 FunkyBob,他回憶起 Django 早期的時(shí)候說(shuō),”甚至在 0.9x 版本中,我們會(huì)發(fā)現(xiàn)一張圖片上面寫(xiě)著:Admin 不是你的應(yīng)用程序“
Curtis 和我都認(rèn)為 Django admin 是一個(gè)很棒的數(shù)據(jù)庫(kù)工具,而且大家也應(yīng)該這樣去對(duì)待它
正如 Curtis 所說(shuō),”鼓勵(lì)大家去構(gòu)建自己的管理界面,并把 Django admin 當(dāng)作一個(gè)數(shù)據(jù)庫(kù)管理工具,這為很多人節(jié)省了痛苦,定制它的努力比回報(bào)快得多“
總之,Django admin 仍是人類(lèi)使用的工具,所以我們應(yīng)該繼續(xù)改進(jìn)它讓它更容易訪(fǎng)問(wèn)
最后,如果你發(fā)現(xiàn)需要將 Django admin 交給客戶(hù)或者最終用戶(hù),請(qǐng)考慮使用 Wagtail ModelAdmin,它幾乎跟 Django admin 一模一樣(而且與現(xiàn)有的 Django admin 一起運(yùn)行)
Wagtail ModelAdmin 具有巨大的可訪(fǎng)問(wèn)性、細(xì)粒度的控制和為非技術(shù)最終用戶(hù)構(gòu)建的良好的用戶(hù)體驗(yàn)
原文鏈接:https://www.coderedcorp.com/blog/why-is-the-django-admin-ugly/