每次使用者發來乙個httprequest請求,django會用url_pattern與請求進行匹配,匹配到第乙個url_pattern就會把請求轉向對應的view
view用來響應request,並返回response,response裡可以包含網頁檔案呀,等等。所以專案中絕大部分**均在此編寫。
view 可以引入通用模板來減少**量,具體檢視文件
use generic viewsview引入html檔案的方法:
這裡其實不一定要把html檔案放在這個templates裡,可以隨意定義不過,需要在setting.py裡,找到templates,
修改dirs:[ os.path.join (base_dir,'你定義的html存放的資料夾')]
def函式名(request):
return
render(request,'index.html')
render(渲染)需要三個變數, 第乙個變數是request請求,第二個是模版所在目錄,第三個是乙個字典(可選),字典用於對應模板裡設計的變數,可以用locals()將函式裡設計的變數自動轉換為字典
fromdjango.urls
import
path
from . import
views
urlpatterns = [
path('', views.index, name='index'),]
在專案資料夾裡找到 urls.py 加入如下內容
fromdjango.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
defdetail(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 ...