Django基于正则表达式的URL(2)
2024-10-18 23:25:12
Django基于正则表达式的URL(2)
1. 关于正则的说明
url(r'^detail-(\d+)-(\d+).html',views.detail), 当客户端输入 127.0.0.1:8000/detail-2-9.html时,Django默认可以得到3个参数,分别是request,
-(\d+)-,-(\d+)-。 所以定义detail函数的时候,需要把这3个参数都接收,否则会报错。当然了是严格按照顺序来写/获取到的。
def detail(request,nid,uid):
print(nid,uid)
2.默认情况下是严格按照顺序来获取得。但是如果想调整形式参数的时候,就会影响到整个程序。基于此,Django还支持正则表达式的分组。
把第1个匹配的赋值给nid,把第2个匹配的赋值给uid.
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html',views.detail),
分组写的好处是,下列2个函数就无区别了。形式参数的位置不会影响代码的值。
def detail(request,nid,uid)
def detail(request,uid,nid)
3. args:接收的是元组
kwargs:接收的是字典类型的。
4.本节笔记
1
2
3
4
5
6
7
8
9
10
11
12
|
一,路由系统,URL 1.一个URL对应一个函数或者对应一个类 url(r'^index/',views.index),url(r'^home/',views.Home.as_view()), 2.一类URL对应一个函数或类 url(r'^detail-(\d+)-(\d+).html',views.index), 严格按照形式参数的位置给它传递的。 3.一类URL对应一个函数或类(用正则表达式的方法来做)推荐使用的。 url(r'^detail-(?P< nid >\d+)-(?P< uid >\d+).html',views.index), 形式参数的位置不影响值。 传递参数的时候,是按照nid=1,uid=9,的样式传递的。 def detail(request,*args,**kwargs) #args元组,kwargs字典。 如果是以url(r'^detail-(\d+)-(\d+).html',views.index)的形式传递的话,则都传到args里面了。 如果是以url(r'^detail-(?P< nid >\d+)-(?P< uid >\d+).html',views.index)的形式的话,都传到kwargs里。 |
最新文章
- Rust初步(一):介绍
- CSS3文本温故
- Facebook开源动画库 POP-POPBasicAnimation运用
- 对于EL表达式和ONGL表达式区别的相关理解
- table中绝对定位元素相对td定位失效解决方案
- UISlider swift
- 《OD大数据实战》HBase整合MapReduce和Hive
- SQLServer 触发器 同时插入多条记录有关问题
- python(5)-正则表达式
- Linux c字符串中不可打印字符转换成16进制
- HDU2015校赛 The Country List
- shell脚本学习之case例子
- Winsock 编程流程
- openMP编程(上篇)之指令和锁
- EBS业务学习之应收管理
- mysql强制索引和禁止某个索引
- 如何写好CSS系列之表单(form)
- [Linux]目录x权限对文件操作的影响
- mysql之变量
- java.net.UnknownHostException: master