程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Django框架之路由和視圖的配置以及Path轉換器的使用

編輯:Python

文章目錄

  • URL和視圖函數
  • 配置路由和視圖
  • Path轉換器
    • 實例1
    • 實例2

URL和視圖函數

URL即統一資源定位符,用來標識互聯網上某個資源的地址
視圖函數是用於接受一個浏覽器親求並通過HttpResponse對象返回響應的函數,此函數可以接受浏覽器請求並根據業務邏輯返回相應的響應內容給浏覽器。

配置路由和視圖

下面配置路由和視圖來創建一個hello world頁面
首先創建視圖函數,我們可以創建一個views.py文件,然後所有的視圖函數都寫在裡面,views.py的代碼如下:

from django.http import HttpResponse
def page_2022_view(request):
html = "<h1>hello world!</h1>"
return HttpResponse(html)

其次,需要在urls.py中配置一個路由

from django.contrib import admin
from django.urls import path
//導入視圖函數
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
# http://127.0.0.1:8000/page/2022/
path("page/2022/", views.page_2022_view)
]

因為默認是127.0.0.1:8000因此配置好的訪問地址為http://127.0.0.1:8000/page/2022/
配置好之後,運行服務器,浏覽器中輸入地址,可以看到以下頁面:

說明路由和視圖配置成功!

Path轉換器

如果我們需要創建100個頁面,其中的內容只需要微調,那麼如果我們復制粘貼100次路由和視圖然後微調,也不是不可以,但是這樣就有點呆了。這裡path轉換器就可以幫助我們,相當於傳參數進去自動配置對應的路由,從而獲得我們需要的效果。


path轉換器的類型簡介

舉兩個例子就懂了。

實例1

首先來個簡單的。
輸入對應的路由內容,能夠跳轉到對應的網頁並且網頁上顯示對應的路由內容。

首先,配置路由
urls.py如下:

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
# http://127.0.0.1:8000
path('', views.index_page),
# http://127.0.0.1:8000/page/2003/
path("page/2022/", views.page_2022_view),
path("page/<str:pg>", views.pagen_view) # 使用path轉換器轉換路由
]

其中<str:pg >就是匹配page/後面的字符串內容,其匹配的值會保存在pg這個變量中。

再配置視圖函數view.py如下:

from django.http import HttpResponse
def pagen_view(request, pg): # 對應path轉換器的視圖
html = "網頁內容為 %s" % (pg)
return HttpResponse(html)

pg就是匹配到的參數,傳入視圖,然後在網頁中展示出來。

配置完之後,啟動服務器

page/後面隨便輸入一些,都可以匹配到對應網頁,並且在網頁中顯示出來

實例2

要求制作一個簡易計算器,在路由中輸入,在頁面輸出計算結果。

看懂了實例1,這個也就信手拈來了。

首先配置路由urls.py:

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path("page/<int:a>/<str:op>/<int:b>", views.cal_view)
]

a、op、b分別對應匹配的整數、字符串、整數,獲取對應值之後只需要在視圖函數操作一下就可以了。

再配置視圖函數views.py:

from django.http import HttpResponse
def cal_view(request, a, op, b):
html = ""
if op == "+":
html = str(a+b)
elif op == "-":
html = str(a-b)
elif op == "*":
html = str(a*b)
elif op == "/":
html = str(a/b)
else:
html = "遇到問題喽"
return HttpResponse(html)

配置完成後,運行服務器訪問頁面:
http://127.0.0.1:8000/page/60/+/90
結果如下:

可見簡易計算器成功完成。

django還提供了比較高級的re_path(),即用正則的Path轉換器,這個轉換器匹配的模板更加精准,需要用到正則表達式,因此用起來也相對復制,因為目前我還沒用到,就不再過多闡述了。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved