第四章、創建視圖

  • 通過之前後臺管理頁面,當我們在瀏覽器中輸入 http://127.0.0.1:8000/admin/ 之後,瀏覽器顯示出了後臺管理的登錄頁面,服務器是怎麼給我們找到這個頁面並返回呢?
  • /admin/是我們想要請求的頁面,服務器在收到這個請求之後,就一定對應着一個處理動作,這個處理動作幫我們產生頁面內容並返回回來,這個過程是由視圖來完成。
  • 在django的MVT設計框架中,用戶在URL中請求的是視圖,視圖接收請求後進行處理,並將處理的結果返回給請求者。

視圖操作步驟:

  • 定義視圖處理函數
  • 配置URL路由

定義視圖處理函數

視圖對應一個Python函數,被定義在views.py中。

視圖的必須有一個參數,一般叫request,視圖必須返回HttpResponse對象,HttpResponse中的參數內容會顯示在瀏覽器的頁面上。

打開app的views.py文件,定義視圖處理函數index

 

from django.http import HttpResponse

def index(request):
    return HttpResponse('<h1>index</h1>')

配置URL路由

打開項目的urls.py文件,爲index視圖增加URL路由:

一條URL路由包括:url規則視圖處理函數兩部分:

  • url規則通常使用正則表達式定義。
  • 視圖處理函數在views.py中定義。

 

from django.conf.urls import url
from django.contrib import admin
from django.urls import path

from app import views

urlpatterns = [
    path('admin/', admin.site.urls),
    url('index', views.index),  # index對應的URL路由
]

啓動Django服務,查看運行效果

查找視圖的過程

請求者在瀏覽器地址欄中輸入url,請求到網站後,獲取url信息,然後與編寫好的URL逐條匹配,如果匹配成功則調用對應的視圖函數,如果所有的URL都沒有匹配成功,則返回404錯誤。

工程實踐

通常將一個app中的URL路由都放在一個文件中,並在項目的urls.py中包含該路由文件

  • 在app中新建urls.py文件,編碼如下:

 

from django.conf.urls import url

from app import views

urlpatterns = [
    url('index', views.index),
]

  • 將app的urls.py加到項目的urls.py

 

from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    url('app', include('app.urls')),
]

啓動Django服務,查看運行效果

注意:增加了一層路由,url的輸入也要隨之變化
http://127.0.0.1:8000/app/index

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章