13、Django URLconf高级用法详解

Django URLconf高级用法详解

1. 命名组的优缺点

命名组在正则表达式中有着独特的优势,它能提高代码的可读性,尤其是对于那些不太熟悉正则表达式或者特定Django应用的开发者来说。不过,它也有缺点,就是会牺牲一定的简洁性,有些开发者认为命名组的语法比较丑陋且过于冗长。

1.1 匹配/分组算法

在URLconf中使用命名组时,有一个需要注意的地方:单个URLconf模式不能同时包含命名组和非命名组。如果这样做,Django不会抛出错误,但URL的匹配可能不会如你预期。URLconf解析器在处理正则表达式中的命名组和非命名组时,遵循以下算法:
- 如果有命名参数,将使用这些命名参数,忽略非命名参数。
- 否则,将所有非命名参数作为位置参数传递。
- 在这两种情况下,都会将任何额外的选项作为关键字参数传递。

2. 向视图函数传递额外选项

有时候,我们会编写一些非常相似的视图函数,只是有一些小的差异。例如,有两个视图,除了使用的模板不同外,内容完全相同。

2.1 初始代码示例

# urls.py
from django.conf.urls.defaults import *
from mysite import views

urlpatterns = patterns('',
    (r'^foo/$', views.foo_view),
    (r'^bar/$', views.bar_view),
)

# views.py
from django.shortcuts import r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值