C:\Users\NOAS2K456CG05\project\project\project\urls.py
from django.contrib import admin
from django.urls import path , include
from app1 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('app1/' , include('app1.urls')),
path('' , views.home , name = 'home'),
]
_________________________我是分隔線______________________________
C:\Users\NOAS2K456CG05\project\project\app1\urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('index/' , views.index , name='index'),
]
_________________________我是分隔線______________________________
C:\Users\NOAS2K456CG05\project\project\app1\views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
s = 'This is index.'
return HttpResponse(s)
def home(request):
s = 'This is home.'
return HttpResponse(s)
_________________________我是分隔線______________________________
不知道會不會太難看 = = , Django超級新手, 想了解整個運作的流程
請教一下幾個問題 , 如果說的不對是很正常的 , 麻煩請指正我!感謝
1.path('' , views.home , name = 'home') 這個是Functiom views
Browser輸入http://127.0.0.1:8000/後 , 使用app1\urls.py這個檔案內的
path('' , views.home , name = 'home') , 將app1\views.py內所定義的function
處理完後丟結果回來 , 而path內的第一個項目>>>''<<< , 如果不加路徑 , 一般來說是
不是作為首頁?
這個語法是否只適用在import app內的views.py ?
2.path('app1/' , include('app1.urls')) 這個是Including another URLconf
輸入http://127.0.0.1:8000/app1/index/後 , Browser 會詢問project內的
path('app1/' , include('app1.urls')) , 發現原來還有一層!
於是又跑去跟app1\urls.py說趕快給我資料 , 然後app1\urls.py很無奈的說出
path('index/' , views.index , name='index')去找他要 , 然後終於將views裡面的
function做完傳給Browser .
3.我看到他給的的例子裡面共有三個 : Functiom views , Including another URLconf
Class-based views , 前面兩個我已經嘗試過了 , 想請問第三個是用在
import views.py 裡面的Class嗎?
4.在C:\Users\NOAS2K456CG05\project\project\app1\urls.py裡面
from . import views 之所以會打 . 是不是因為他們處在同個資料夾的原因?
5.views只能存在app裡面? 我在youtube看老外教學時 , 有些人是直接放在project
資料夾下 , 有些是放在app資料夾下 , 我覺得很混亂= = , 有什麼好處或壞處嗎?
或是有什麼用意?
還有urls也是= = , 是純粹為了方便不想隔一層import還是美觀性 ,還是有其他原因?
因為我有點強迫症 , 不喜歡東西很亂 , 希望就固定幾個pattern這樣下去做 , 以後要
修正或是Debug也方便好找 .