Django - 應用程式結構
第二天,我們將學習 Django 專案的結構,理解專案與應用的關係,並創建一個新的應用來加深理解。
課程目標
- 瞭解 Django 專案的文件結構。
- 學習 Django 中專案與應用的關係。
- 創建並註冊一個新的 Django 應用。
課程內容
1. Django 專案文件結構
在 Day 1 中,我們創建的專案結構如下:
1
2
3
4
5
6
7
8
myproject/
manage.py # Django 管理工具
myproject/ # 專案核心文件
__init__.py # 專案初始化文件
settings.py # 專案設定
urls.py # 全局路由配置
asgi.py # ASGI 應用入口
wsgi.py # WSGI 應用入口
重要文件介紹
manage.py
:- 用於運行命令,如啟動伺服器、遷移資料庫等。
settings.py
:- 存放專案的全局配置,如資料庫、應用列表等。
urls.py
:- 定義全局路由表,用於將 URL 分派到應用的視圖函數。
2. 專案與應用的關係
專案 (Project):
- 一個 Django 專案包含整體配置與多個應用。
- 它負責整合應用並提供全局設定。
應用 (App):
- Django 應用是專門處理某一功能的模組化代碼單元。
- 例如,Blog 專案可以有
posts
和users
兩個應用。
分離專案與應用的好處:
- 提高可重用性:應用可以獨立運作並用於多個專案。
- 增強可維護性:模組化的代碼更易於管理。
3. 創建 Django 應用
3.1 創建新應用
使用
startapp
命令創建應用:1
python manage.py startapp myapp
新應用的目錄結構:
1 2 3 4 5 6 7 8
myapp/ __init__.py # 應用初始化文件 admin.py # 註冊模型至 Django 管理後台 apps.py # 應用設定 migrations/ # 資料庫遷移文件夾 models.py # 定義資料模型 tests.py # 單元測試 views.py # 視圖函數
3.2 註冊應用
- 在
settings.py
中的INSTALLED_APPS
列表中添加應用名稱:1 2 3 4 5 6 7 8 9
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', # 新增的應用 ]
4. 定義應用的 URL 路由
4.1 創建應用內的路由文件
在
myapp
目錄下創建urls.py
文件:1 2 3 4 5 6
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
在
views.py
中添加簡單的視圖:1 2 3 4
from django.http import HttpResponse def index(request): return HttpResponse("Welcome to MyApp!")
4.2 將應用路由包含到專案中
修改
myproject/urls.py
,包含myapp.urls
:1 2 3 4 5 6 7
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('myapp/', include('myapp.urls')), # 包含應用路由 ]
現在訪問 http://127.0.0.1:8000/myapp/ 即可看到應用的首頁。
5. 本日總結
- 瞭解了 Django 專案與應用的結構和關係。
- 學會如何創建與註冊一個應用。
- 成功為應用添加了 URL 路由與簡單的視圖。
作業
- 為
myapp
添加另一個路由和視圖,返回一段個性化的問候語。 - 嘗試創建一個新的應用,設計路由與簡單的視圖。
本文章以 CC BY 4.0 授權