建立應用 app
接續要開始建立應用app,其實就是網站每個頁面的功能(路由、操作者的需求處理與回饋)。
cmd
py manage.py startapp myapp
檔案結構
cmd
myproject/
manage.py
|_myapp/
|_ __init__.py
|_ admin.py (管理者介面)
|_ app.py (app應用設定)
|_ migrations/ (資料庫移轉使用)
|_ __init__.py
|_ models.py (資料庫模型)
|_ test.py (測試程式debug使用)
|_ views.py (操作者需求處理與回饋)
|_myproject/
註冊應用 app
在 Django
中,只要每次有新的應用 app,都必須註冊到 settings.py
及 urls.py
兩個檔案內,才能正式啟用。
- 註冊專案 :
在settings.py
註冊有2種方式 :
py
...
INSTALLED_APPS=[
...
'myapp.apps.MyappConfig',
# 或
'myapp'
]
...
官方所提的 Applications 設定,這裡提到兩個設定,一個是 myapp.apps.MyappConfig
,另一個是 myapp
。
TIP
在 setting.py
中,有需多線上教學都有 import os
,好像是之後為了WSGI環境設置用的。官方 On the server (mod_wsgi)
- 註冊路由 :
py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
# admin是預設的管理者介面
path("admin/", admin.site.urls),
# 這裡是新增路由
path("hello/", include("myapp.urls")),
]
DANGER
- 必須要在
django.urls
先引入include
。 - path ( 路由名 , include(指定app子路由))
- 通常指定子路由時,會在應用
app
內增加urls.py
設定子路由。
App的運作
test.py
、apps.py
比較沒有設定關聯性。
移除APP
有建立當然也有移除,步驟有一定規則:
- App資料夾內除了
__init__.py
及models.py
兩個檔案 +migrations
資料夾 外,其餘都可以先刪除。 - 刪除
models.py
內的所有程式碼。 - 執行更新資料庫與遷移更新,這樣會自動偵測已刪除的資料庫,然後更新。cmd
py manage.py makemigrations py manage.py migrate
- 刪除所有App資料,記得註冊在
settings.py
、ulrs.py
內的資訊也要手動刪除。 - 重新部署,會出現提示確認是否要刪除;不過官方是沒有提到這一步驟。cmd
python manage.py remove_stale_contenttypes --include-stale-apps