Django url 管理之 命名组

命名组可以使用命名的正则表达式组来捕获 URL 中的值并以关键字参数的方式传递给视图函数。

在 Python 正则表达式中,命名正则表达式组的语法是 (?P<name>pattern),其中 name 是组的名称,pattern 是要匹配的模式。

例子, urls.py 如下:

urlpatterns = [
    …………

    # 捕获一个 test/ 后面接上4个数字的 url
    # 并把这4个数字作为 test 视图函数的关键字参数 year
    url(r'^test/(?P<year>[0-9]{4})/$', test),
    ]

视图函数,views.py 如下:

from django.http.response import HttpResponse

# 上面 url 的最后四个数字作为关键字参数 year 被传入到视图函数 test 中
def test(request, year):
    return HttpResponse('年份:' + year) 

打开:http://127.0.0.1:8000/test/2016/ ,就能看到 url 上的值 2016。

我们也可以有多个命名组,比如同时在 url 中传递年份和月份参数:

url(r'^test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', test),




指定视图参数的默认值

编写 url.py:

urlpatterns = [
    …………

    url(r'^test/$', test),
    url(r'^test/(?P<year>[0-9]{4})/$', test),
    ]

编写视图函数 views.py:

def test(request, year='2000'):
    return HttpResponse('年份:' + str(year)) 

当访问:http://127.0.0.1:8000/test/ 时候,year 的值将会是默认值 '2000'。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 已经同步到gitbook,想阅读的请转到gitbook: Django 1.10 中文文档 URL dispatc...
    leyu阅读 14,817评论 0 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,766评论 19 139
  • 自强学堂Django教程 目录 Django是目前最流行的Python Web框架。 一、Django的MTV模式...
    CaiGuangyin阅读 4,902评论 4 3
  • 第二章:视图和URL 2.1第一个Django驱动的页面 页面的内容由视图函数(view function)生成,...
    m风满楼阅读 4,654评论 0 12
  • MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Templa...
    lkning阅读 4,262评论 0 0