聊聊 Django

文章最後更新於 2023 年 1 月 31 日

以下是跟AI聊聊Django的一些筆記

什麼是 Django?

Django 是一個強大且免費的 Python 框架,旨在使建立網站及 Web 應用程式變得簡單。它的主要目標是提供一個架構,讓你可以專注於構建應用程式的核心功能,而不是花時間在構建基礎架構方面。Django 包含了用於建立網站的大多數常用工具,包括用於處理 HTTP 請求、顯示資料、和管理使用者身份驗證的功能。

為什麼要用 Django?

有許多理由可以解釋為什麼要使用 Django,包括:

  1. 簡單易用:Django 有一個簡潔的統一的設計,使得建立網站變得簡單。它包含了用於建立網站的大多數常用工具,因此你可以專注於構建應用程式的核心功能。
  2. 功能強大:Django 提供了大量的功能,包括用於建立管理後台的工具、用於建立表單的工具、以及用於進行網站國際化的工具。
  3. 有社群支援:Django 有一個活躍的社群,可以提供協助和支援。如果你遇到問題,可以很容易地在網路上找到解決方案。
  4. 安全:Django 非常重視安全性,並提供了許多用於保護網站免受攻擊的功能。
  5. 可擴展:Django 是一個模組化的框架,可以輕鬆地擴展功能。你可以使用現有的模組,或者建立自己的模組來擴展功能。

什麼地方會用到 Django?

Django 通常用於構建數據導向的 Web 应用程序,並且在很多不同的領域中使用。例如:

  • 商業:Django 可以用於構建 CRM 系統、企業資源計劃系統和其他企業应用程序。
  • 社交媒體:Django 可以用於構建社交媒體平臺,如 Twitter 或 Facebook。
  • 教育:Django 可以用於構建在線課程平臺或教學管理系統。
  • 金融:Django 可以用於構建金融應用程序,如在線銀行或投資管理工具。

這只是其中的一些示例,Django 的應用非常廣泛。

如何使用 Django?

使用 Django 的一般步驟如下:

  1. 安裝 Django。
  2. 使用 django-admin startproject 命令創建新項目。
  3. 創建應用程序。
  4. 為應用程序創建模型。模型是 Django 中的數據定義,用於定義您的應用程序中使用的數據類型。
  5. 使用 Django 的 ORM(對象關係映射)和管理器在數據庫中創建、更新和查詢模型。
  6. 為模型創建視圖,這些視圖是您的應用程序中用於展示數據的功能。
  7. 創建模板,這些模板是用於渲染視圖的 HTML 文件。
  8. 配置 URL,使用 Django 的 URLconf 系統將 URL 映射到視圖。
  9. 啟動服務器並測試您的應用程序。

一個新的 Django Project 資料匣裡有些什麼?

一個新的 Django 項目資料夾通常包含以下幾個檔案和資料夾:

  • manage.py:這是一個可執行的檔案,它可以幫助你執行各種 Django 管理任務。
  • 項目名稱/:這是你的 Django 項目的根目錄,它包含你的項目的設定和其他重要檔案。
  • 項目名稱/__init__.py:這是一個空的檔案,它使項目名稱資料夾變成一個 Python 模組。
  • 項目名稱/settings.py:這是你的 Django 項目設定檔。它包含了你項目的設定,包括資料庫設定、應用程式設定等等。
  • 項目名稱/urls.py:這是你的 Django 項目的 URL 設定檔。它包含了你項目中所有 URL 模式的列表,並指定哪個模式對應到哪個 view。
  • 項目名稱/asgi.py:這是你的 Django 項目的 ASGI 配置檔。ASGI (Asynchronous Server Gateway Interface) 是一種新的 Python Web Server Gateway Interface,可以用於構建異步網站。
  • 項目名稱/wsgi.py:這是你的 Django 項目的 WSGI 配置檔。WSGI (Web Server Gateway Interface) 是一種用於構建網站的標準接口,它可以讓你的 Django 項目與各種 Web 服務器集成。

此外,你的 Django 項目資料夾還可能包含一個或多個 app 資夾,每個 app 資料夾都包含了一個 Django app 的代碼和資源。每個 app 資料夾通常包含以下檔案和資料夾:

  • __init__.py:這是一個空的檔案,它使 app 資料夾變成一個 Python 模組。
  • admin.py:
    • 它用於註冊你的 app 中的模型到 Django 的管理後台 (admin site)。
    • Django 的管理後台是一個方便的工具,可以讓你通過瀏覽器直接管理你的網站資料庫。例如,你可以使用管理後台新增、修改或刪除資料庫中的記錄。
    • 在你的 app 中的 admin.py 檔中,你可以定義一個或多個 ModelAdmin 類,用於控制每個模型如何在管理後台中顯示。例如,你可以指定哪些欄位在列表中顯示,或者指定哪些欄位可以在詳細頁面中編輯。
    • 為了讓你的 app 中的模型可以在管理後台中使用,你需要在 admin.py 檔中註冊它們。例如,如果你有一個模型叫做 “Article”,你可以在 admin.py 檔中這樣註冊它:
from django.contrib import admin
from .models import Article

admin.site.register(Article)

這樣,你就可以在管理後台中使用 Article 模型了。

  • models.py:這是你的 Django app 中模型的定義檔。模型是 Django ORM (Object-Relational Mapper) 用來描述資料庫中表格的類。
  • views.py:這是你的 Django app 中视图的定義檔。视图是用來控制頁面內容的函數或類。
  • urls.py:這是你的 Django app 中 URL 設定的定義檔。它包含了你的 app 中所有 URL 模式的列表,並指定哪個模式對應到哪個 view。
  • tests.py 檔
    • 通常是 Django app 中的一個檔案,用於定義測試函數和測試類。
    • 在 Django 中,測試是一個很重要的環節,因為它可以幫助你確保你的代碼在修改後仍然能夠正常工作。測試函數和測試類用於測試你的代碼是否符合預期,並在發現問題時給出警告。
    • 在你的 app 中的 tests.py 檔中,你可以定義多個測試函數或測試類,並使用 Django 的測試工具來執行這些測試。例如,你可以使用 Django 的 TestCase 類來寫一個單元測試,並使用 assertEqual() 函數來驗證某個值是否符合預期。
    • 為了執行你的測試,你可以在命令列中輸入以下命令:
      • python manage.py test
    • 會自動執行你的 app 中的所有測試函數和測試類,並顯示測試結果。如果你想執行特定的測試函數或測試類,你可以在命令後面加上測試名稱,例如:
      • python manage.py test myapp.tests.TestMyModel
    • 這會執行你的 app 中名稱為 “TestMyModel” 的測試類。
  • migrations/:這是一個資料夾,包含了你的 Django app 中的數據庫遷移腳本。Django 使用遷移腳本來跟蹤你的模型中的變化,並自動更新你的數據庫。
  • static/:這是一個資料夾,包含了你的 Django app 中的靜態資源,例如 CSS 檔、JavaScript 檔和圖像檔等。
  • templates/:這是一個資料夾,包含了你的 Django app 中的模板檔。模板是用來生成动态頁面的 HTML 文件。

使用 Django 要注意什麼?

在使用 Django 構建 Web 应用程序時,您可能需要注意以下事項:

  • Django 使用了 MVC 架構模式(模型 – 視圖 – 控制器)。確保了解 MVC 架構,並遵循 Django 的 MVC 模式,可以幫助您更好地管理應用程序的代碼。
  • Django 有一個健全的用戶管理系統,但是您仍然需要自己管理用戶資料(如密碼哈希)和權限。
  • Django 需要使用數據庫,因此您需要了解如何配置和使用數據庫,以及如何在 Django 中使用 ORM。
  • Django 具有強大的表單系統,但是您仍然需要了解如何處理表單輸入和驗證。
  • Django 有一個內置的靜態文件管理器,但是您仍然需要了解如何管理應用程序的靜態文件(如 CSS 和 JavaScript)。

這只是使用 Django 時您可能會遇到的一些常見問題的示例。

關於作者

卡哥
卡哥
我是Oscar (卡哥),前Yahoo Lead Engineer、高智商同好組織Mensa會員,超過十年的工作經驗,服務過Yahoo關鍵字廣告業務部門、電子商務及搜尋部門,喜歡彈吉他玩音樂,也喜歡投資美股、虛擬貨幣,樂於與人分享交流!

如果對文章內容有任何問題,歡迎在底下留言讓我知道。
如果你喜歡我的文章,可以按分享按鈕,讓更多的人看見我的文章。

網友留言