Django路由系統---django重點之url傳遞一個默認參數


django重點之url傳遞一個默認參數

可以利用這個特性,讓2個URL映射一個函數,但是返回2個不同的HTML

url(r'default_param1', views.def_param,),

url(r'default_param2', views.def_param, {"index": "index.html"}),

settigs.py:增加STATICFILES_DIRS靜態資源路徑配置,名稱為創建的文件夾名稱

'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 設置templates的路徑為Django以前版本
# 'DIRS': [],      # 注釋掉該行,此為Django 2.0.1最新版本
# 'django.middleware.csrf.CsrfViewMiddleware',
         ...省略默認配置
STATIC_URL = '/static/'
TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)  # 原配置
# 靜態資源文件
STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),)   # 現添加的配置,這里是元組,注意逗號

templates/*.html

mysite2/urls.py

from django.contrib import admin
from django.urls import path
from blog import views
from django.conf.urls import url
# URL值默認參數類型
urlpatterns = [
      url(r'default_param', views.def_param, {"hello": "world"}),  # 將路徑名跟函數進行映射
]

views.py

from django.shortcuts import render, HttpResponse
import datetime 
# 默認URL之參數類型,需要形參接收默認參數,形參名必須跟URL里面的一樣
# def default_param(request, name):   # 報錯 default_param() got an unexpected keyword argument 'name'
def def_param(request, hello):    # 形參名稱必須跟URL里面的一致
  # return HttpResponse("URL值默認參數之hello參數".encode("gbk"), hello)# 默認返回的是一個字符串的拼接
   return HttpResponse(hello)  # 返回值: world

頁面顯示:

image_thumb[3]_thumb_thumb

注意:

       如果參數名稱重復,則默認的會覆蓋前面的參數值[因為后面的參數覆蓋前面]

# URL值默認參數類型[參數覆蓋問題]:
url(r'^hello/[0-9]{4}/', views.def_param, {"hello": "world"}),

image_thumb[4]_thumb_thumb


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM