」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Django 適合所有人。

Django 適合所有人。

發佈於2024-11-07
瀏覽:939

Django is for everyone.

即使對於“小型”網站,Django 也很棒

我認為人們傾向於認為 Django 要么用於構建老式的、工業強度的整體應用程序,要么用於 API 並使用 React 之類的東西作為前端。我在這裡告訴您,即使對於您的個人網站,普通的 Django 也是一個不錯的選擇!在我看來,如果你需要資料庫,你應該使用 Django1.

為什麼是姜戈?

Django 被認為是「包含電池」的框架,這些電池非常棒。這些是我使用 Django 而不是其他框架的原因。

物件關係映射器 (ORM)

Django ORM 是使用該框架的一個重要原因。令我驚訝的是,並非所有 Web 框架都包含 ORM。除非您非常喜歡從頭開始編寫 SQL,否則這是建立應用程式的正確方法。您定義模型,從這些模型建立資料庫遷移(大部分自動),在資料庫上執行遷移,然後您就可以開始了!無需編寫半途而廢的模型以及一系列可以推斷模式的遷移2所有您需要的有關資料的資訊都在您的 models.py 檔案中,一切都從中產生。

管理員

這是一件大事。它不是 CMS;而是 CMS。它更像是 ORM 的 GUI。定義模型後,您可以透過非常少的配置來管理該數據,而無需編寫任何 CRUD 程式碼。它不是您應用程式的前端。它不是面向最終用戶的 CMS(可能)。這是管理員輕鬆更改網站的一種方式。

漸進增強

這對我來說非常重要,但我們行業的大多數其他人似乎已經忘記了。簡單地說;即使 JavaScript 失敗,基本層級的功能也應該是可能的。您的應用程式至少應該能夠在沒有前端腳本的情況下運行。使用 SPA 來做到這一點是一場噩夢。使用真正的後端框架加上 htmx 或 Unpoly 等工具來完成此操作是微不足道的。你只需要把你的觀點從現狀轉向常識。

需要牢記的概念

音樂電視

雖然傳統的應用程式框架使用模型、視圖、控制器設計模式; Django 對元素的命名略有不同。

  • 模型
    • 好吧,這個是一樣的。
  • 模板
    • 這相當於傳統的View.
  • 看法
    • 這基本上等於是傳統的控制器

資料庫遷移

這是 Django 中已解決的問題。真是太好了!還有很多東西需要了解,您應該在運行生成的遷移文件之前查看它們,有時您需要更手動地執行這些操作,但是這就是使用它的關鍵:

./manage.py makemigrations
# It tells you what it did.

./manage.py migrate
# Database updated!

就是這樣! ?

如何開始

火焰馬

這是我自己的小專案的地方。對於您(我想正在閱讀本文的獨立開發人員)來說,好消息是它可以免費用於非商業用途。如果您最終使用它並且它幫助您建立了一個商業應用程序,那麼只需 100 美元一次。來吧,這太值了!

即使您最終沒有使用整個套件,我也強烈建議您查看我在程式碼中使用的技術。幾乎從一開始就使用 Django 後,這是來之不易的東西。我經歷了將它與 Docker 和 Postgres 一起使用的階段,但我真的相信這對於 99% 想要嘗試 Django 的人來說是 的方式。 SQLite 太棒了。

部署

不幸的是,這是選擇 Django 而非其他針對個人網站的選項的主要缺點。對於 Blaze.horse,我試圖讓您輕鬆度過,但它仍然比應有的更複雜。有一些即將到來的項目給了我希望,例如 Button 和 Appliku,但我個人目前對 Fly 感到滿意。

後續步驟

在閱讀本文後,我希望下次需要建造某些東西時能夠記住 Django。如果我能幫忙請告訴我!


  1. 如果您需要 CMS,您應該使用 Kirby。如果您需要 CMS,您當然不應該使用靜態網站產生器。 FFS ↩

  2. Laravel ↩

版本聲明 本文轉載於:https://dev.to/battlecat/django-is-for-everyone-3dkp?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在Java中的多個返回類型:一種誤解類型:在Java編程中揭示,在Java編程中,Peculiar方法簽名可能會出現,可能會出現,使開發人員陷入困境,使開發人員陷入困境。 getResult(string s); ,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但這確實是如此嗎...
    程式設計 發佈於2025-05-25
  • 如何使用Depimal.parse()中的指數表示法中的數字?
    如何使用Depimal.parse()中的指數表示法中的數字?
    在嘗試使用Decimal.parse(“ 1.2345e-02”中的指數符號表示法表示的字符串時,您可能會遇到錯誤。這是因為默認解析方法無法識別指數符號。 成功解析這樣的字符串,您需要明確指定它代表浮點數。您可以使用numbersTyles.Float樣式進行此操作,如下所示:[&& && && ...
    程式設計 發佈於2025-05-25
  • 如何使用組在MySQL中旋轉數據?
    如何使用組在MySQL中旋轉數據?
    在關係數據庫中使用mySQL組使用mySQL組進行查詢結果,在關係數據庫中使用MySQL組,轉移數據的數據是指重新排列的行和列的重排以增強數據可視化。在這裡,我們面對一個共同的挑戰:使用組的組將數據從基於行的基於列的轉換為基於列。 Let's consider the following ...
    程式設計 發佈於2025-05-25
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於2025-05-25
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。要簡化過程,建議將JSON作為數組而不是對象解析。 執行此操作,將JSON_DECODE函數與第二個參數設置為true:[&&&&& && &&&&& json = JSON = JSON_DECODE($ ...
    程式設計 發佈於2025-05-25
  • 在PHP中如何高效檢測空數組?
    在PHP中如何高效檢測空數組?
    在PHP 中檢查一個空數組可以通過各種方法在PHP中確定一個空數組。如果需要驗證任何數組元素的存在,則PHP的鬆散鍵入允許對數組本身進行直接評估:一種更嚴格的方法涉及使用count()函數: if(count(count($ playerList)=== 0){ //列表為空。 } 對...
    程式設計 發佈於2025-05-25
  • 如何使用Python有效地以相反順序讀取大型文件?
    如何使用Python有效地以相反順序讀取大型文件?
    在python 中,如果您使用一個大文件,並且需要從最後一行讀取其內容,則在第一行到第一行,Python的內置功能可能不合適。這是解決此任務的有效解決方案:反向行讀取器生成器 == ord('\ n'): 緩衝區=緩衝區[:-1] ...
    程式設計 發佈於2025-05-25
  • 解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    程式設計 發佈於2025-05-25
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-05-25
  • 如何使用PHP從XML文件中有效地檢索屬性值?
    如何使用PHP從XML文件中有效地檢索屬性值?
    從php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    程式設計 發佈於2025-05-25
  • Java字符串非空且非null的有效檢查方法
    Java字符串非空且非null的有效檢查方法
    檢查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。 isement(Isement() trim whitespace whites...
    程式設計 發佈於2025-05-25
  • 切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    Unable to Connect to MySQL Database: Troubleshooting Error MessageWhen attempting to switch from the MySQL driver to the MySQLi driver in CodeIgniter,...
    程式設計 發佈於2025-05-25
  • 如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    從python import codecs import codecs import codecs 導入 text = codecs.decode('這狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#帶有...
    程式設計 發佈於2025-05-25
  • 在Oracle SQL中如何提取下劃線前的子字符串?
    在Oracle SQL中如何提取下劃線前的子字符串?
    [ 在oracle sql 解決方案: Explanation:SUBSTR function extracts a substring starting from the specified position (0) and continuing for a specified length.IN...
    程式設計 發佈於2025-05-25
  • 如何高效地在一個事務中插入數據到多個MySQL表?
    如何高效地在一個事務中插入數據到多個MySQL表?
    mySQL插入到多個表中,該數據可能會產生意外的結果。雖然似乎有多個查詢可以解決問題,但將從用戶表的自動信息ID與配置文件表的手動用戶ID相關聯提出了挑戰。 使用Transactions和last_insert_id() 插入用戶(用戶名,密碼)值('test','tes...
    程式設計 發佈於2025-05-25

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3