views.py裡新增function
urls.py新增 路徑與app.function做mapping
# views.py
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('<em>My Second App</em>')
# urls.py
from django.conf.urls import url
from django.contrib import admin
from apptwo import views
urlpatterns = [
url(r'^$', views.index),
url(r'^admin/', admin.site.urls),
]
現在我們已經知道要如何去做到Mapping了,可是會發現一個問題,假設有多個App,每個App都有多個Function,依照上述的設定urls.py將會變的很亂,而Django也有解決此問題的方法。
我們利用include()在project的urls.py中做app的設定,如下:
# first_project/urls.py
from django.conf.urls import url
from django.conf.urls import include # 新增這個
urlpatterns = [
url(r'^first_app/', include('first_app')),
]
完成之後在App目錄底下新增urls.py
# first_app/urls.py
from django.conf.urls import url
from apptwo import views
urlpatterns = [
url(r'^index$', views.index, name='index'),
]
我大概解釋一下,上述設定將每個App的路由交給各自目錄的urls.py處理而不是全部都集中於project的urls.py,結果將會是http://127.0.0.1:8000/first_app/index
first_app/代表執行first_app這個App都要有first_app/,而之後的index代表著first_app中views的index function
有沒有覺得很神奇呢?
沒有留言:
張貼留言