《玩转Django2.0》读书笔记-编写URL规则

              《玩转Django2.0》读书笔记-编写URL规则html

                                       做者:尹正杰 python

版权声明:原创做品,谢绝转载!不然将追究法律责任。正则表达式

 

 

  URL(Uniform Resource Locator,统一资源定位符)是对能够从互联网上获得对资源位置和访问方法对一种简介对表示,是互联网砂锅标准资源的地址。互联网上的每一个文件都有一个惟一的URL,用于指出文件的路径为孩子。简单地说,URL就是常说的网址,每一个地址表明不一样的网页,在Django中,URL也称为URLconf。django

 

 

一.URL编写规则浏览器

  以下图所示,在讲解URL编写规则以前,需对MyWeb项目的目录进行调整,使其更符合开发规范性。在每一个App中设置独立的静态资源和模板文件并添加一个空白的内容的.py文件,命名为urls.py。

  在App里添加urls.py是将App的URL都写入该文件中,而项目根目录的urls.py是将每一个App的urls.py统一管理。

 

  当程序收到用户请求的时候,首先在根目录的urls.py查找该URL是属于哪一个App,而后再从App的urls.py找到具体的URL信息。在根目录的urls.py编写URL规则以下:ide

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.contrib import admin                #导入Admin功能模块
from django.urls import path,include            #导入URL编写模块

''' urlpatterns: 整个项目的URL集合,每一个元素表明一条URL信息。 path('admin/', admin.site.urls): 设定Admin的URL。'admin/'表明“http://127.0.0.1:8000/admin”地址信息,'admin'后面的斜杠是路径分隔符; “admin.site.urls”是URL的处理函数,也称为视图函数。 path('',include('index.urls')): URL为空,表明为网站的域名,即“http://127.0.0.1:8000/”,一般是网站的首页;include是将该URL分发给index的urls.py处理。 ''' urlpatterns = [ path('admin/', admin.site.urls), path('',include('index.urls')) ]

  因为首页的地址分发给index.urls.py处理,所以下一步须要对index的urls.py编写URL信息,代码以下:函数

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.urls import path          #导入URL编写模块
from . import views                   #导入当前目录(该文件存放的同一目录)下的views.py文件

''' urlpatterns: 整个项目的URL集合,每一个元素表明一条URL信息。 path('', views.index): URL为空,表明为网站的域名,即“http://127.0.0.1:8000/”,一般是网站的首页;还寄给上面咱们导入了“views”这个文件吗? 该文件用于编写视图函数,处理URL请求信息并返回网页给用户。“views.index”表示咱们调用了views文件中的index函数(换句话说,当 用户访问首页是,就会触发“views.index”函数的执行)。所以咱们在这里指定后,须要在“views”这个文件里编写对应的“index”函数。 ''' urlpatterns = [ path('', views.index), ]

  index的urls.py编写规则与根目录的urls.py大体相同,基本上全部的URL都是有固定编写格式的。上述代码倒入了同一目录喜好的views.py文件,该文件用于编写视图函数,处理URL请求信息并返回网页内容给用户。所以,在views.py中编写index函数的处理过程,代码以下:网站

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.http import HttpResponse            #用于给用户响应信息。


''' index函数必须设置参数request,该参数表明当前用户的请求对象,该对象包含用户名,请求内容和请求方式等信息,视图函数 执行完成后必须使用return将处理结果返回,不然程序会抛出异常信息。 '''
def index(request): return HttpResponse("尹正杰到此一游!")

  启动MyWeb项目,在浏览器中打开“http://127.0.0.1:8000/”,运行结果以下图所示:ui

 

二.带变量带URLurl

   在平常开发过程当中,有时候一个URL能够表明多个不一样的页面,如编写带有日期的URL,若根据前面的编写方式,按一年计算,则须要开发者编写365个不一样的URL才能实现,这种作法明显是不可取的。所以,Django在编写的是URL时,能够对URL设置变量值,使URL具备多样性。

  URL的变量类型有字符类型,整型,slug和uuid,最为经常使用的是字符类型和整型。各个类型说明以下:

字符类型(str):   匹配任何非空字符串,但不含斜杠,感叹号之类的特殊字符。若是没有指定类型,默认使用该类型。 整型(int):   匹配0和正整数。 slug:   可理解为注释,后缀或附属等概念,常做为URL的解释性字符。可匹配任何ASCII字符以及连接符和下划线,能使URL更加清晰易懂。好比网页的标题的是“尹正杰博客”,其URL能够设置为“yin-zheng-jie-blog”。 uuid:   匹配一个uuid格式的对象。为了防止冲突,规定必须使用破折号而且全部字母必须都小写,例如:6456853c-92d3-4465-a7be-83bdf4ce999

  根据上述变量类型,在index的urls.py里添加带有字符类型,整型和slug的URL地址信息,代码以下:

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.urls import path          #导入URL编写模块
from . import views                   #导入当前目录(该文件存放的同一目录)下的views.py文件

''' urlpatterns: 整个项目的URL集合,每一个元素表明一条URL信息。 path('', views.index): URL为空,表明为网站的域名,即“http://127.0.0.1:8000/”,一般是网站的首页;还寄给上面咱们导入了“views”这个文件吗? 该文件用于编写视图函数,处理URL请求信息并返回网页给用户。“views.index”表示咱们调用了views文件中的index函数(换句话说,当 用户访问首页是,就会触发“views.index”函数的执行)。所以咱们在这里指定后,须要在“views”这个文件里编写对应的“index”函数。 path('<year>!<int:month>!<slug:day>',views.madate): 在URL中使用变量符合“<>”能够为URL设置变量。在括号里面以冒号划分为两部分,前面表明的是变量的数据类型,后面表明的是变量 名,变量名可自行命名。上述代码对新政的URL设置了三个变量值,分别是<year>,<int:month>和<slug:day>,变量说明以下: <slug:day>: 变量名称为year,数据格式为字符类型,与<str:year>的含义同样。 <int:month>: 变量名称为month,数据格式为整型。 <slug:day>: 变量名为day,数据类型为slug 舒适提示:上面中的各个变量之间使用“!”对各个变量进行分隔。固然你也能够设置为“/”进行分隔,不推荐使用"#",由于在URL中他有特定的含义。 ''' urlpatterns = [ path('', views.index), path('<year>!<int:month>!<slug:day>',views.madate) ]

  而后在views.py中编写视图函数mydate的处理方法,代码以下:

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.http import HttpResponse            #用于给用户响应信息。


''' index函数必须设置参数request,该参数表明当前用户的请求对象,该对象包含用户名,请求内容和请求方式等信息,视图函数 执行完成后必须使用return将处理结果返回,不然程序会抛出异常信息。 '''
def index(request): return HttpResponse("尹正杰到此一游!") ''' 试图函数的mydate有4个函数参数,其中year,month,和day是来自与URL的变量。URL的变量和视图的函数的参数与URL的变量。 URL的变量和视图函数的参数要一一对应,若是视图函数的参数与URL的变量对应不上,那么程序会抛出参数不相符的报错信息。 '''
def madate(request,year,month,day): return HttpResponse(str(year) + "-" + str(month) + "-" +str(day))

  启动项目,在浏览器上输入:“http://127.0.0.1:8000/2008!10!11”,运行结果以下图所示:

 

  在上述例子中,URL的变量分别表明年,月,日。从变量的数据类型能够看出,变量值只要符合数据格式都是合法的,使得某些变量值不符合日期格式要求。为了进一步规范日期格式,可使用正则表达式限制URL可变范围。正则表达式的URL编写以下:

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.urls import path,re_path   #导入URL编写模块,path只是普通的URL定义,而re_path则支持正则表达式
from . import views                   #导入当前目录(该文件存放的同一目录)下的views.py文件

''' urlpatterns: 整个项目的URL集合,每一个元素表明一条URL信息。 path('', views.index): URL为空,表明为网站的域名,即“http://127.0.0.1:8000/”,一般是网站的首页;还寄给上面咱们导入了“views”这个文件吗? 该文件用于编写视图函数,处理URL请求信息并返回网页给用户。“views.index”表示咱们调用了views文件中的index函数(换句话说,当 用户访问首页是,就会触发“views.index”函数的执行)。所以咱们在这里指定后,须要在“views”这个文件里编写对应的“index”函数。 path('<year>!<int:month>!<slug:day>',views.madate): 在URL中使用变量符合“<>”能够为URL设置变量。在括号里面以冒号划分为两部分,前面表明的是变量的数据类型,后面表明的是变量 名,变量名可自行命名。上述代码对新政的URL设置了三个变量值,分别是<year>,<int:month>和<slug:day>,变量说明以下: <slug:day>: 变量名称为year,数据格式为字符类型,与<str:year>的含义同样。 <int:month>: 变量名称为month,数据格式为整型。 <slug:day>: 变量名为day,数据类型为slug 舒适提示:上面中的各个变量之间使用“!”对各个变量进行分隔。固然你也能够设置为“/”进行分隔,不推荐使用"#",由于在URL中他有特定的含义。 re_path('(?P<year>[0-9]{4}/?P<month>[0-9]{2}/?P<day>[0-9]{2}).html',views.madate): 在URL中引用正则表达式,首先导入re_path功能模块,正则表达式的做用是对URL的变量进行截取与判断,以小括号表示,每一个小括号 的先后可使用斜杠或者其余字符将其分隔。如下代码为例,分别将year,month和day以斜杠分隔,每一个变量以一个小括号为单位,在小括 号内,可分为三部分,以(?P<year>[0-9]{4})为例进行介绍。 ?P: 是固定格式。 <year>: 是变量的编写规则 [0-9]{4}: 是正则表达式的匹配模式,表明变量的长度是4,只容许取0-9的值。 值得注意的是,若是URL的末端使用正则表达式,那么在该URL的末端应加上斜杠或者其余字符,不然正则表达式没法生效。如下代码 为例的变量day,若在末端没有设置“.html”,则在浏览器上输入无限长的字符串,程序也能正常访问。 ''' urlpatterns = [ path('', views.index), #path('<year>!<int:month>!<slug:day>',views.madate)
    # re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html',views.madate),
    re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html', views.madate), ]

 

三.设置参数name

   除了在URL里面设置变量以外,Django还能够对URL进行命名。在index对url.py,views.py和模板myyear.html中添加以下代码:

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.urls import path,re_path   #导入URL编写模块,path只是普通的URL定义,而re_path则支持正则表达式
from . import views                   #导入当前目录(该文件存放的同一目录)下的views.py文件

''' urlpatterns: 整个项目的URL集合,每一个元素表明一条URL信息。 path('', views.index): URL为空,表明为网站的域名,即“http://127.0.0.1:8000/”,一般是网站的首页;还寄给上面咱们导入了“views”这个文件吗? 该文件用于编写视图函数,处理URL请求信息并返回网页给用户。“views.index”表示咱们调用了views文件中的index函数(换句话说,当 用户访问首页是,就会触发“views.index”函数的执行)。所以咱们在这里指定后,须要在“views”这个文件里编写对应的“index”函数。 path('<year>!<int:month>!<slug:day>',views.madate): 在URL中使用变量符合“<>”能够为URL设置变量。在括号里面以冒号划分为两部分,前面表明的是变量的数据类型,后面表明的是变量 名,变量名可自行命名。上述代码对新政的URL设置了三个变量值,分别是<year>,<int:month>和<slug:day>,变量说明以下: <slug:day>: 变量名称为year,数据格式为字符类型,与<str:year>的含义同样。 <int:month>: 变量名称为month,数据格式为整型。 <slug:day>: 变量名为day,数据类型为slug 舒适提示:上面中的各个变量之间使用“!”对各个变量进行分隔。固然你也能够设置为“/”进行分隔,不推荐使用"#",由于在URL中他有特定的含义。 re_path('(?P<year>[0-9]{4}/?P<month>[0-9]{2}/?P<day>[0-9]{2}).html',views.madate): 在URL中引用正则表达式,首先导入re_path功能模块,正则表达式的做用是对URL的变量进行截取与判断,以小括号表示,每一个小括号 的先后可使用斜杠或者其余字符将其分隔。如下代码为例,分别将year,month和day以斜杠分隔,每一个变量以一个小括号为单位,在小括 号内,可分为三部分,以(?P<year>[0-9]{4})为例进行介绍。 ?P: 是固定格式。 <year>: 是变量的编写规则 [0-9]{4}: 是正则表达式的匹配模式,表明变量的长度是4,只容许取0-9的值。 值得注意的是,若是URL的末端使用正则表达式,那么在该URL的末端应加上斜杠或者其余字符,不然正则表达式没法生效。如下代码 为例的变量day,若在末端没有设置“.html”,则在浏览器上输入无限长的字符串,程序也能正常访问。 ''' urlpatterns = [ path('', views.index), #path('<year>!<int:month>!<slug:day>',views.madate)
    # re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html',views.madate),
    re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html', views.madate), # 带参数name的URL
    re_path('(?P<year>[0-9]{4}).html', views.mayear, name='mayear'), ]
urls.py添加新的URL信息
#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.http import HttpResponse            #用于给用户响应信息。
from django.shortcuts import render             #用于网页渲染的模块

''' index函数必须设置参数request,该参数表明当前用户的请求对象,该对象包含用户名,请求内容和请求方式等信息,视图函数 执行完成后必须使用return将处理结果返回,不然程序会抛出异常信息。 '''
def index(request): return HttpResponse("尹正杰到此一游!") ''' 试图函数的mydate有4个函数参数,其中year,month,和day是来自与URL的变量。URL的变量和视图的函数的参数与URL的变量。 URL的变量和视图函数的参数要一一对应,若是视图函数的参数与URL的变量对应不上,那么程序会抛出参数不相符的报错信息。 '''
def madate(request,year,month,day): return HttpResponse(str(year) + "-" + str(month) + "-" +str(day)) # 参数name的URL的视图函数
def mayear(request, year): return render(request, 'myyear.html')
在views.py添加对应的视图函数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body> {# 在以往,大多数开发者都是采用这种方式在木板上设置每一个标签的a的href的属性值,若是URL地址发生变动,就要修改每一个标签a的href属性值,这种方式不利于URL的变动和维护。#}
<div><a href="/2018.html">2018 old Archive</a></div> {# 和上面不一样的,咱们采用Django的模板语法,咱们在URL中设置参数name,只要参数name的值不变,不管URL地址信息如何修改都无须修改模板中标签a的href属性值。#}
<div><a href="{% url 'mayear' 2018 %}">2018 Archive</a></div>
</body>
</html>
在index的App中的templates文件夹添加myyear.html文件

  上述代码分别从URL,视图函数和HTML模版来讲明参数name的具体做用,整个执行流程以下:

  1>.当用户访问URL时,项目根据URL信息选择视图函数mayear,并将该URL命名为mayear。

  2>.视图函数mayear将模板myyear.html做为响应内容并生成相应的网页返回给用户

  3>.在模板myyear.html中分别设置两个标签a,虽然两个标签a的href属性只的写法有所不一样,但实质上二者都指向命名为mayear的URL地址信息。

  4>.第二个标签a的href为"{% url 'mayear' 2018 %}",这里是Django 的模板语法,模板语法以{%%}表示。其中,url 'mayear' 是将命名为“mayear”的URL地址信息做为href属性值;2018是该URL的变量year,若URL没有设置变量值,则无需添加。

  从上述例子能够看到,模板中的mayear与urls.py所设置的参数name是一一对应的。参数name的做用是对该URL地址信息进行命名,而后在HTML模板中使用能够生成相应的URL信息。在浏览器的地址栏输入:“http://127.0.0.1:8000/2018.html”,运行结果以下图所示:

 

四.设置额外参数

  除了参数name以外,还有一种参数类型是以字典的数据类型传递的,该参数没有具体命名,只要是字典像是便可,并且该参数只能在有视图函数中读取和使用,其代码以下:(Django还能够对URL进行命名。在index对url.py,views.py和模板myyear.html中添加以下代码:)

#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.urls import path,re_path   #导入URL编写模块,path只是普通的URL定义,而re_path则支持正则表达式
from . import views                   #导入当前目录(该文件存放的同一目录)下的views.py文件

''' urlpatterns: 整个项目的URL集合,每一个元素表明一条URL信息。 path('', views.index): URL为空,表明为网站的域名,即“http://127.0.0.1:8000/”,一般是网站的首页;还寄给上面咱们导入了“views”这个文件吗? 该文件用于编写视图函数,处理URL请求信息并返回网页给用户。“views.index”表示咱们调用了views文件中的index函数(换句话说,当 用户访问首页是,就会触发“views.index”函数的执行)。所以咱们在这里指定后,须要在“views”这个文件里编写对应的“index”函数。 path('<year>!<int:month>!<slug:day>',views.madate): 在URL中使用变量符合“<>”能够为URL设置变量。在括号里面以冒号划分为两部分,前面表明的是变量的数据类型,后面表明的是变量 名,变量名可自行命名。上述代码对新政的URL设置了三个变量值,分别是<year>,<int:month>和<slug:day>,变量说明以下: <slug:day>: 变量名称为year,数据格式为字符类型,与<str:year>的含义同样。 <int:month>: 变量名称为month,数据格式为整型。 <slug:day>: 变量名为day,数据类型为slug 舒适提示:上面中的各个变量之间使用“!”对各个变量进行分隔。固然你也能够设置为“/”进行分隔,不推荐使用"#",由于在URL中他有特定的含义。 re_path('(?P<year>[0-9]{4}/?P<month>[0-9]{2}/?P<day>[0-9]{2}).html',views.madate): 在URL中引用正则表达式,首先导入re_path功能模块,正则表达式的做用是对URL的变量进行截取与判断,以小括号表示,每一个小括号 的先后可使用斜杠或者其余字符将其分隔。如下代码为例,分别将year,month和day以斜杠分隔,每一个变量以一个小括号为单位,在小括 号内,可分为三部分,以(?P<year>[0-9]{4})为例进行介绍。 ?P: 是固定格式。 <year>: 是变量的编写规则 [0-9]{4}: 是正则表达式的匹配模式,表明变量的长度是4,只容许取0-9的值。 值得注意的是,若是URL的末端使用正则表达式,那么在该URL的末端应加上斜杠或者其余字符,不然正则表达式没法生效。如下代码 为例的变量day,若在末端没有设置“.html”,则在浏览器上输入无限长的字符串,程序也能正常访问。 ''' urlpatterns = [ path('', views.index), #path('<year>!<int:month>!<slug:day>',views.madate)
    # re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html',views.madate),
    re_path('(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2}).html', views.madate), # 带参数name的URL
    re_path('(?P<year>[0-9]{4}).html', views.mayear, name='mayear'), # 参数为字典的URL
    re_path('dict/(?P<year>[0-9]{4}).htm', views.myyear_dict, {'month': '05'}, name='myyear_dict') ]
urls.py添加新的URL信息
#!/usr/bin/env python3 #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com

from django.http import HttpResponse            #用于给用户响应信息。
from django.shortcuts import render             #用于网页渲染的模块

''' index函数必须设置参数request,该参数表明当前用户的请求对象,该对象包含用户名,请求内容和请求方式等信息,视图函数 执行完成后必须使用return将处理结果返回,不然程序会抛出异常信息。 '''
def index(request): return HttpResponse("尹正杰到此一游!") ''' 试图函数的mydate有4个函数参数,其中year,month,和day是来自与URL的变量。URL的变量和视图的函数的参数与URL的变量。 URL的变量和视图函数的参数要一一对应,若是视图函数的参数与URL的变量对应不上,那么程序会抛出参数不相符的报错信息。 '''
def madate(request,year,month,day): return HttpResponse(str(year) + "-" + str(month) + "-" +str(day)) # 参数name的URL的视图函数
def mayear(request, year): return render(request, 'myyear.html') # 参数为字典的URL的视图函数
def myyear_dict(request, year, month): return render(request, 'myyear_dict.html',{'month':month})
views.py添加的代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="{% url 'myyear_dict' 2018 %}">2018 {{ month }} Archive</a>
</body>
</html>
index目录templates的目录下myyear_dict.html文件内容

  上述代码分别从URL,视图函数和HTML模板来讲明URL额外参数的具体做用,说明以下 :

    除了在URL地址信息中设置擦数name以外,还加入了参数{'month':'05'},该参数用于设置参数month,参数值为05.

    而后视图函数myyear_dict获取了变量year和参数month,前者设置在URL地址中,然后者在URL地址外。

    最后视图函数将参数month的值传递到HTML模板并生成HTML网页返回给用户。在浏览器端输入:“http://127.0.0.1:8000/dict/2018.htm”,运行结果以下:

  在编写URL规则时,若是须要设置额外参数,设置规则以下:

  • 参数只能以字典的形式表示;
  • 设置的参数只能在视图函数读取和使用;
  • 字典的一个键值对表明一个参数,键表明参数名,值表明参数值;
  • 参数值没有数据格式限制,能够为某个对象,字符串或列表(元组)等。
相关文章
相关标签/搜索