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
页面显示:
注意:
如果参数名称重复,则默认的会覆盖前面的参数值[因为后面的参数覆盖前面]
# URL值默认参数类型[参数覆盖问题]: url(r'^hello/[0-9]{4}/', views.def_param, {"hello": "world"}),
作者:小a玖拾柒
-------------------------------------------
个性签名: 所有的事情到最後都是好的,如果不好,那說明事情還沒有到最後~
本文版权归作者【小a玖拾柒】和【博客园】共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利!