Skip to content
On this page

建立應用 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/           

django_group

註冊應用 app

Django 中,只要每次有新的應用 app,都必須註冊到 settings.pyurls.py 兩個檔案內,才能正式啟用。

  1. 註冊專案 :

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)

  1. 註冊路由 :
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

  1. 必須要在 django.urls 先引入 include
  2. path ( 路由名 , include(指定app子路由))
  3. 通常指定子路由時,會在應用 app 內增加 urls.py 設定子路由。

App的運作

test.pyapps.py比較沒有設定關聯性。 app_flow

移除APP

有建立當然也有移除,步驟有一定規則:

  1. App資料夾內除了 __init__.pymodels.py 兩個檔案 + migrations資料夾 外,其餘都可以先刪除。
  2. 刪除 models.py 內的所有程式碼。
  3. 執行更新資料庫與遷移更新,這樣會自動偵測已刪除的資料庫,然後更新。
    cmd
    py manage.py makemigrations
    py manage.py migrate
    
  4. 刪除所有App資料,記得註冊在settings.pyulrs.py內的資訊也要手動刪除。
  5. 重新部署,會出現提示確認是否要刪除;不過官方是沒有提到這一步驟。
    cmd
    python manage.py remove_stale_contenttypes --include-stale-apps