Django-4.2博客開發教程:URL與視圖函數(八)

URL與視圖的關係

簡單理解爲,你輸入www.baidu.com(URL),回車》》返回百度的頁面(view視圖)。

Django中約定URL是在項目同名目錄下的urls.py文件裏urlpatterns列表構造的。

1)urlpatterns的參數意義如下

myblog/myblog/urls.py 

urlpatterns = [

  path('counter/<int:pk>/', ArticleCounterRedirectView.as_view(), name='article-counter'),

  path('details/<int:pk>/', ArticleDetailView.as_view(), name='article-detail'),

  path('go-to-django/', RedirectView.as_view(url='https://www.djangoproject.com/'), name='go-to-django'),

]

解釋:-------------------------------------
urlpatterns = [ path(正則表達式, views視圖函數,參數,別名), ] 括號裏的參數說明: 1、一個正則表達式字符串 2、一個可調用對象,通常爲一個視圖函數或一個指定視圖函數路徑的字符串 3、可選的要傳遞給視圖函數的默認參數(字典形式) 4、一個可選的name參數(別名)

2)URL例子,要構造三個URL

首頁(http://www.bai.com/)、新聞(http://www.bai.com/news/)、地圖(http://www.bai.com/map/),把第一個參數改成如下

urlpatterns = [
    path('', views.index), #裏面留空,匹配空,代表首頁
    path('news/',views.news),#news
    path('map/',views.bbs),#map
]

APP應用裏的視圖在》APP目錄下views.py文件裏。

APP應用的URL在》項目目錄下的 urls.py文件,然後裏通過下面的方式導入。

 urls.py

from APP應用名 import views
from APP應用名.vews import 函數名或類名

 注:視圖函數就是一個Python 函數,它接受Web請求並且返回Web響應。響應可以是一張網頁的HTML內容,一個重定向,一個404錯誤,一個XML文檔,或者一張圖片。。。。這個視圖函數代碼一般約定是放置在項目或應用程序目錄中的名爲views.py的文件中。

3)VIEW + URL組合使用

  • VIEW操作在APP裏:打開bolg目錄下的views.py文件,寫一個hello視圖函數,在裏面輸入:
from django.http import HttpResponse

def hi(request):
   """
  寫一個hello函數,通過request接收URL或者說是http請求信息,
  然後給這個請求返回一個HttpResponse對象
  """
    return HttpResponse('hi world!')

例子裏,我們用到的request,就是HttpRequest對象。HttpResponse("歡迎使用Django!"),就是HttpRequest對象,它向http請求響應了一段字符串對象。

 

  •  URL操作在同項目名的目錄下:打開myblog目錄下的urls.py文件中先導入視圖函數,然後構造一個URL,代碼如下:
from blog import views  #導入視圖函數
urlpatterns = [
    ...
    path('', views.hi),   #這個是我們構造的URL
]

 

 

代碼寫完之後,啓動項目就可以在瀏覽器裏看到視圖函數返回的字符串"hi world!"

每一個URL都會對應一個視圖函數,當一個用戶請求訪問Django站點的一個頁面時,然後就由Django路由系統(URL配置文件)去決定要執行哪個視圖函數使用的算法。

通過URL對應關係匹配 ->找到對應的函數(或者類)->返回字符串(或者讀取Html之後返回渲染的字符串)這個過程也就是我們Django請求的生命週期。

視圖函數,就是圍繞着HttpRequest和HttpResponse這兩個對象進行的。

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