django路由和視圖
要了解django是如何運行的,首先要了解路由和視圖兩個概念,然后我們在項目中添加一些簡單的路由和視圖
路由和視圖的概念
視圖:一個視圖函數(類),簡稱視圖,是一個簡單的Python一個視圖函數(類),簡稱視圖,是一個簡單的Python 函數(類),它接受Web請求并且返回Web響應。
響應可以是一張網頁的HTML內容,一個重定向,一個404錯誤,一個XML文檔,或者一張圖片。
無論視圖本身包含什么邏輯,都要返回響應。
個人覺得django視圖的概念其實是spring中的Action和View參和在一起的概念。
路由:維護視圖視圖函數映射關系的結構,在Web框架中,稱之為路由維護視圖視圖函數映射關系的結構,在Web框架中,稱之為路由。
Django把這種映射關系配置在(urls.py)。它的本質是URL與要為該URL調用的視圖函數之間的映射表。
可以對比spring中的ActionMapping,能夠很好理解路由的概念。
一個簡單的例子
我們需要自己創建視圖集合,按慣例把視圖模塊放在views.py中,我們創建分別3個視圖:
index 首頁
order 顯示訂單列表
produt 顯示產品列表
from django.shortcuts import render from django.http import HttpResponse def index(request): html = "<html><body>It is index page</body></html>" return HttpResponse(html) def orderlist(request): html = "<html><body>It is order list</body></html>" return HttpResponse(html) def produtlist(request): html = "<html><body>It is produt list</body></html>" return HttpResponse(html)
路由信息配置在項目中urls.py,我們修改下添加自己的路由
from django.contrib import admin from django.urls import path from django.urls import re_path from .views import * “ 導入視圖模塊 urlpatterns = [ path("admin/", admin.site.urls), path("index/", index), “ index路由 path("order/", orderlist), “ orderlist路由 path("produt/", produtlist), “ produtlist路由 ]
我們看一下運行結果
index路由
orderlist路由
正則路由
上面是常規路由配置,如果我們需要增加根據訂單號查詢某一個訂單的URL怎么辦,訂單號并不是固定的,
我們用到正則路由配置
views.py
def order(request, id): html = "<html><body>It is order detail id =" + id + " </body></html>" return HttpResponse(html)
urls.py
urlpatterns = [ re_path("order/([0-9]+)/", order ), “ ([0-9]+) 表示訂單號是數字 ]
我們看一下運行結果
到此這篇關于python之django路由和視圖案例教程的文章就介紹到這了,更多相關python之django路由和視圖內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/windyson2004/article/details/119060051