日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django从理论到实战(part7)--关于视图函数与URL映射

發布時間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django从理论到实战(part7)--关于视图函数与URL映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考

參考自:Django打造大型企業官網;URL映射

本系列Blog以應用為主,理論基礎部分我在后端專欄的Django系列博客已經寫過了,如果有些需要補充的知識點,我會在這個系列中,盡量詳細的寫一下。



視圖函數


視圖函數一般都寫在app的views.py中,并且視圖函數的第一個參數永遠都是request(一個HttpRequest)對象。這個對象存儲了請求過來的所有信息,包括攜帶的參數以及一些頭部信息等。在視圖函數中,一般是完成邏輯相關的操作。視圖函數的返回結果必須是HttpResponseBase對象或者子類的對象。

例如:

def show_book(request):html = "<h2>顯示全部書籍</h2>"return HttpResponse(html)

URL映射


URL映射是諸如 Django、Ruby on Rails 等網頁框架 (web frameworks) 的一個重要組件。對于從瀏覽器發來的 HTTP 請求,URL映射模塊會解析請求中的 URL 地址,并將其分派給相應的處理代碼。

當我們創建好視圖函數后,要與URL進行映射,即用戶在瀏覽器中輸入什么url的時候可以請求到這個視圖函數。當用戶輸入某個url,向我們的網站發起請求時,django會從項目的urls.py文件中尋找對應的視圖函數。

在urls.py文件中有一個urlpatterns變量,django會從這個變量中讀取所有的匹配規則。匹配規則需要使用django.urls.path等函數進行包裹,這個函數會根據傳入的參數返回URLPattern或者是URLResolver的對象。

例如:

urlpatterns = [path('admin/', admin.site.urls),path('', views.baidu),path('book/', include('book.urls')), ]

現在,我想提出2個疑問。

為什么Django會在urls.py模塊而不是其他模塊中尋找所有的url呢?


這是因為,在settings.py配置文件中,存在一個ROOT_URLCONF變量,這個變量可以告訴Django去哪里尋找url映射模塊,比如,在我的settings.py文件中,ROOT_URLCONF變量是這樣設置的:

ROOT_URLCONF = 'newwebsite1.urls'

它表示,Django會在newwebsite1文件夾中的urls.py文件中尋找url。


為什么在我們的urls.py文件中,要用urlpatterns列表包裹所有路由呢,換一個說法,為什么路由放在urlpatterns列表中,才會被找到呢?

這是因為,如果我們設置了urls.py文件(也可以設置其他自定義模塊)為URL映射模塊,則Django會默認的在urls.py文件中尋找urlpatterns列表,并從列表中尋找url,所以以后我們設置路由時,一定要將其放在urlpatterns列表中。

總結

以上是生活随笔為你收集整理的Django从理论到实战(part7)--关于视图函数与URL映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。