Django基于正则表达式的URL(2)
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里。 |

Django基于正则表达式的URL(2)的更多相关文章
- Django基于正则表达式的URL(1)
1. 此时,用户只能看到列表,如果用户想查看详细信息,应该再增加程序. 2. 把信息用a标签包起来以后,详细信息就有了可以跳转的功能. . 3. 点击不同的用户名时,获取到不同的信息. 3.1 在ur ...
- django 基于正则表达式的url
方式一: urls.py from mytest import views urlpatterns = [ url(r'^index-(\d+)-(\d+).html', views.Index.as ...
- Django基于正则表达式匹配URL
在Django1.X中,是这样匹配的. 在Django2.X中,是这样匹配的. Django2.X中开始需要用re_path模块进行正则表达式匹配了,太JB坑了,卡了好久这个问题,最后还是问群里面的高 ...
- django基于正则的url匹配
url.py views.py index.html detail.html 访问:
- 【django基础补充之URL,视图,模版】
一.url路由配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代 ...
- Django框架02 /Django下载安装、url路由分发
Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...
- Django和Flask对于URL尾斜杠(back slash)的处理
最近在看Flask,其中提到了对于URL尾斜杠的处理.感觉算是一个需要注意的地方吧,就和Django的处理方式来进行一个简单的对比. 首先说下什么是尾斜杠. http://www.baidu.com/ ...
- django(二)视图和URL配置
创建一份视图: 在上一节,使用django-admin.py startproject制作的mysite文件夹中,创建一个叫做views.py的空文件.这个Python模块健柏寒这一章的视图. vie ...
- python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式
一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...
随机推荐
- Java中equals()和hashCode()的关系以及重写equals()和hashCode()的重要性
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6580647.html 一:关系 如果两个对象相等(equal),它们的hashcode一定相同: 如果两个对 ...
- VIM自定义快捷键 abort
"在选择模式下系统级复制 vmap ,c "+y<ESC>vmap ,C "+Y<ESC>"在选择模式下系统级剪切vmap ,x x:l ...
- Selenium测试Ajax应用程序中的主要问题
主要的问题可能就是页面加载的问题,有时候页面没有加载成功导致对象找不到,从而导致脚本不能运行. 主要使用的方式是,在测试的全局中设置一个页面的加载时间,如果timeout就是没有找到对象.如下参考: ...
- JAVA正确的四舍五入方法
在JDK版本为1.8的情况运行下面的代码,会发现很神奇的情况(见运行结果). 看如下代码: package com.longge.mytest; import java.math.BigDecimal ...
- java中pojo、dao命名解释
POJO::POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和EJB ...
- jenkins里面使用批处理命令进行自动部署
http://blog.csdn.net/hwhua1986/article/details/47974047
- 安装xenapp后,非管理员连接RDP出现桌面当前不可用的解决方法
安装完xenapp后,非管理员帐号就不能远程登录到2008服务器. 修改方法如下:1.启动 Citrix AppCenter展开citrix资源.Xenapp.<场地>.策略,右面的窗格切 ...
- 无法启动程序,因为计算机丢失D3DCOMPILER_47.dll 的解决方法
这个原因应该是windows update在更新的时出现错误导致的 解决方法是安装 KB4019990 更新包. 网址如下:http://www.catalog.update.microsoft.c ...
- 【LeetCode】Missing Ranges
Missing Ranges Given a sorted integer array where the range of elements are [lower, upper] inclusive ...
- 新系统基础优化--Centos6.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...