Django中URL和View的關係

2021-08-15 23:39:35 字數 1474 閱讀 5292

每次使用者發來乙個httprequest請求,django會用url_pattern與請求進行匹配,匹配到第乙個url_pattern就會把請求轉向對應的view

view用來響應request,並返回response,response裡可以包含網頁檔案呀,等等。所以專案中絕大部分**均在此編寫。

view 可以引入通用模板來減少**量,具體檢視文件

use generic views

view引入html檔案的方法:

這裡其實不一定要把html檔案放在這個templates裡,可以隨意定義

不過,需要在setting.py裡,找到templates,

修改dirs:[ os.path.join (base_dir,'你定義的html存放的資料夾')]

def

函式名(request):

return

render(request,'index.html')

render(渲染)需要三個變數, 第乙個變數是request請求,第二個是模版所在目錄,第三個是乙個字典(可選),字典用於對應模板裡設計的變數,可以用locals()將函式裡設計的變數自動轉換為字典

from

django.urls

import

path

​from . import

views

​urlpatterns = [  

​path('', views.index, name='index'),​]

在專案資料夾裡找到 urls.py 加入如下內容

from

django.urls

import

include, path

​urlpatterns = [

path('polls/', include('polls.urls')),

path('admin/', admin.site.urls),

]

對於標籤裡的 href 可以用來代替,url名指的是 urls.py 裡的path('login.html/', views.my_login, name='url名'),

django 中通常使用get_object_or_404()來捕捉 404 錯誤,而不用自己寫 try...except

def

detail(request, question_id):

question = get_object_or_404(question, pk=question_id)

return

render(request, 'polls/detail.html', )

django中url和reverse使用

使用url標籤和reverse 函式,可以避免在模板和view中對url進行硬編碼,這樣即使url改變了,對模板和view也沒有影響,其實在模板,view中,如果想獲取當前訪問的url,那用request.path或request.get full path 是更方便的選擇,當然,如果想在templ...

Django 基礎二 View和urls

的web開發了.首先進入專案的主目錄 cd djangolearn hollow world 新建完成之後,可以看到當前目錄多了乙個叫myblog的檔案目錄.django.contrib.auth django.contrib.contenttypes django.contrib.sessions...

django的url分配和url捕獲引數

django的url分配 8 path方法裡面有兩個引數,第乙個是檢視函式的路由,第二個是該路由對應的檢視函式的函式名 注意是函式名,不要帶括號 1 from django.contrib import admin 2from django.urls import path,include34 5 ...