1. 程式人生 > 實用技巧 >玩轉django2.0學習筆記——編寫URL規則

玩轉django2.0學習筆記——編寫URL規則

URL (Uniform Resource Locator , 統一資源定位符〉是對可以從網際網路上得到的 資源位置和訪問方法的一種簡潔的表示,是網際網路上標準資源的地址。網際網路上的每個檔案都有一個唯一的URL , 用於指出檔案的路徑位置。簡單地說, URL 就是常說 的網址,每個地址代表不同的網頁, 在Django 中, URL 也稱為URLconfo。

統一資源定位符(URL,英語baiUniform Resource Locator的縮寫),它的英文簡稱叫做URL。也被稱為網頁地址,是因特網上標準的資源的地址。它最初是由蒂姆·伯納斯-李發明用來作為全球資訊網的地址的,現在它已經被全球資訊網聯盟編制為因特網標準RFC1738了。

URL以字串的抽象形式來描述一個資源在全球資訊網上的地址。一個URL唯一標識一個Web資源,通過與之對應的URL即可獲得該資源。UR格式一般如下:

協議型別://伺服器地址[:埠號]/路徑/檔名[引數=值]

上述結構中[]部分是可選的。如果埠號與相關協議預設值(80)不同,則需包含埠號。其中協議型別包括HTTP,MAILTO,FILE,FTP等。利用HTTP協議訪問全球資訊網上的一個資源的URL形如:http://website.com/goods/search.phpterm-apple

其中website.com伺服器,search.php是伺服器端的一個指令碼檔案,之後緊跟指令碼執行所需要的引數term,而apple為使用者輸入的對應term的引數值


3.1 URL編寫規則

書中以如下目錄為參考


個人的目錄如下

在App 裡新增urls.py 是將屬於App 的URL 都寫入到該檔案中,而專案根目錄的urls.py 是將每個App 的urls.py 統一管理。當程式收到使用者請求的時候, 首先在根目錄的urls.py 查詢該URL 是屬於那個App ,然後再從App 的urls.py 找到具體的URL 資訊。在根目錄的urls.py 編寫URL 規則,如下所示:


from django.contrib import admin
from django.urls import path,include
 
urlpatterns = [
     path(
'admin/', admin.site.urls), path(
'',include('index.urls')) ]


上述程式碼設定了兩個URL 地址, 分別是Admin 站點管理和首頁地址。其中 admin站點管理是在建立專案時已自動生成, 一般情況下無須更改。 urls.py 的程式碼解釋如下。


from django.contrib import admin 匯入Admin 功能模組。

from django.urls import path,include 匯入URL編寫模組,注意兩個函式,path和include

urlpatterns 整個專案的URL 集合,每個元素代表一條URL 資訊。這裡有兩條地址,一條是admin的,另外一條是index的地址

path('admin/', admin.site.urls), 設定Admin 的URL o 'admin/ ' 代表 127.0.0.1 : 8000/ (埠號8000是由呼叫是命令決定的)地址資訊, admin 後面的斜槓是路徑分隔符; admin.site. urls 是URL 的處理函式,也稱為檢視函式。

path('',include('index.urls')) URL 為空, 代表為網站的域名, 即127.0.0.1 :8000, 通常是網站的首頁; include 將該URL 分發給APP”index “的urls .py 處理。


由於首頁的地址分發給index 的urls.py 處理,因此下一步需要對index 的urls.py編寫URL 資訊, 程式碼如下:


from django.urls import path
from . import views

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


index 的urls.py 的編寫規則與根目錄的urls.py 大致相同, 基本上所有的URL 都是有固定編寫格式的。上述程式碼匯入了同一目錄下的views.py 檔案, 該檔案用於編寫檢視函式, 處理URL 請求資訊並返回網頁內容給使用者。因此, 在views.py 中編寫 index 函式的處理過程, 程式碼如下:


from django.shortcuts import render 
from django.http import HttpResponse 
# Create your views here.
def index(request): 
    return HttpResponse("Hello World")

index 函式必須設定引數request ,該引數代表當前使用者的請求物件, 該物件包含使用者名稱、請求內容和請求方式等資訊,檢視函式執行完成後必須使用return 將處理結果返回,否則程式會丟擲異常資訊。啟動MyDjango 專案, 在瀏覽器中開啟 http://127.0.0.1 :8000/ , 執行結果如圖所示。

注意,在執行的時候,如果是在伺服器上應該使用

python manage.py runserver 0.0.0.0:8080

1、要確保埠被開放

2、sitting.py中的 ALLOWED_HOSTS 設定為['*']