path()和re_path()用法&区别
path()
参数列表:
参数1:字符串类型,用来匹配请求路径
参数2:指定路径所对应的视图函数名
参数3:关键字参数 实际用的不多
参数4...
# urls.py
# 创建子应用的路由文件
from django.urls import path
from day2.views import *
urlpatterns = [
# 参数1:字符串类型,用来匹配请求路径
# 参数2:指定路径所对应的视图函数名
path('hello/', day_2_hello),
path('world/', day_2_hello),
# 转换器的写法,用来匹配url中变量
path('abc/<name>', name),
# 限定变量的类型为int类型
path('aaa/<int:money>', money),
# 参数3:关键字参数 实际用的不多
path('kw_test', kw_test, kwargs={'language': 'python', 'teacher': 'coco', 'age': 18}),
# 参数 name参数 : 给路由字符串加了个别名。name='hello_name'叫反向解析,可以得到路由地址
path('name_test', name_test, name='hello_name'),
# 组合使用上面的参数
path('all_together/<int:money>/have', all_together, kwargs={'abc': 123}, name='all_together')
]
#views.py
from django.http import HttpResponse
# 函数用来接收用户请求进行处理
# request:django封装好的对象,在调用该函数day_2_hello(request对象)
from django.urls import reverse
def day_2_hello(request):
# pass
# 返回浏览器数据:需要使用response对象
return HttpResponse('你好')
def name(request,name):
return HttpResponse('浏览器的地址栏name是{}'.format(name))
def money(request,money):
return HttpResponse('浏览器的地址栏money是{}'.format(money))
def kw_test(request,**kwargs):
return HttpResponse('{}'.format(kwargs))
def name_test(request):
# 接收到的不是helloname,而是当前路由地址
return HttpResponse('name_test的路由是:{}'.format(reverse('hello_name')))
def all_together(request,money,**kwargs):
print(money,kwargs)
return HttpResponse("测试一下")
re_path()
# urls.py
from django.urls import re_path, path
from day3.views import *
urlpatterns = [
# re_path('正则模式', 视图函数名,name='路由别名'),
# 正则模式:(?P<name>正则表达式)
re_path('^get_age/(?P<age>\d{1,2}$)', get_age),
# path('1.html',goods),
# path('2.html',goods2),
# 需求:根据不同的商品id展示不同的页面
re_path('^(?P<id>\d+)\.html', goods),
# 手机 智能手机 1 老人机 ....
# 华为p50 --->10
# 127.0.0.1:8000/day3/1/50.html
# path('1/50.html',goods2),
re_path('^(?P<catid>\d+)/(?P<goodsid>\d+)\.html$', goods2),
path('get_request', get_request)
]
#views.py
from django.http import HttpResponse
# Create your views here.
def get_age(request,age):
return HttpResponse('get_age函数的age是={}'.format(age))
def goods(request,id):
return HttpResponse('商品{}的详情页'.format(id))
def goods2(request,catid,goodsid):
return HttpResponse('分类id={},商品id={}'.format(catid,goodsid))
区别:
path()效率比re_path()高,少一步解析路由地址
path()和re_path()用法&区别的更多相关文章
- Django2.0路由补充之path,re_path及视图层
以下是Django2.0版本 正则捕获到的参数都是字符串,所以如果函数需要用的其他数据类型,可以在函数中直接转换,也可以在路由中直接转换,如下: 下面实例是匹配整数,传过去的参数就是整数 from d ...
- order_by_、group_by_、having的用法区别
写于 2012-11-20 22:14 doc文档上. Having 这个是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后 ...
- html中的alt和title用法区别
html中的alt和title用法区别 首先明确一下概念,alt是html标签的属性,而title既是html标签,又是html属性.title标签这个不用多说,网页的标题就是写在<title& ...
- 转 SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题
SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题 SQL Union和SQL Union All用法 SQL UNION 操作符 UN ...
- OC .(点)与->(箭头)用法区别
这两天同学总是问OC里.和->的用法区别,当时回答的不是很好,周末查了一下,大概清楚了,在这里记录一笔. 先看这个例程 #import <Foundation/Foundation.h&g ...
- php中strstr、strrchr、substr、stristr四个函数用法区别
php中strstr.strrchr.substr.stristr四个函数用法区别: php中strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,常用的是s ...
- mysql SELECT FOUND_ROWS()与COUNT(*)用法区别
在mysql中 FOUND_ROWS()与COUNT(*)都可以统计记录,如果都一样为什么会有两个这样的函数呢,下面我来介绍SELECT FOUND_ROWS()与COUNT(*)用法区别 SEL ...
- php中print_r、var_dump和var_export几个函数的用法区别
php中print_r.var_dump和var_export几个函数的用法区别
- Oracle中 (+)与left join 的用法区别
Oracle中 (+)与left join 的用法区别 原创 2017年01月11日 13:33:42 6648 select * from a,b where a.id=b.id(+); (+)写在 ...
随机推荐
- Solution -「BZOJ 3331」压力
\(\mathcal{Description}\) Link. 给定一个 \(n\) 个点 \(m\) 条边的连通无向图,并给出 \(q\) 个点对 \((u,v)\),令 \(u\) 到 \ ...
- code-server服务端开发利器,再也不用vim装逼了!!!
一直有个需求,就是万不得已在服务修改代码的时候能有个好的工具,至少比vim要强吧!虽然vim也还行,但是如果比vscode那一定是差了点!这个微软洗心革面的新工具着实不错!从刚开始的鄙视到真香我用了不 ...
- CoRR 2018 | Horovod: Fast and Easy Distributed Deep Learning in Tensorflow
将深度学习模型的训练从单GPU扩展到多GPU主要面临以下问题:(1)训练框架必须支持GPU间的通信,(2)用户必须更改大量代码以使用多GPU进行训练.为了克服这些问题,本文提出了Horovod,它通过 ...
- 聊聊MySQL的加锁规则《死磕MySQL系列 十五》
大家好,我是咔咔 不期速成,日拱一卒 本期来聊聊MySQL的加锁规则,知道这些规则后可以判断SQL语句的加锁范围,同时也可以写出更好的SQL语句,防止幻读问题的产生,在能力范围内最大程度的提升MySQ ...
- python爬虫:爬虫的简单介绍及requests模块的简单使用
python爬虫:爬虫的简单介绍及requests模块的简单使用 一点点的建议: (学习爬虫前建议先去了解一下前端的知识,不要求很熟悉,差不多入门即可学习爬虫,如果有不了解的,我也会补充个一些小知识. ...
- 16进制转字符串得到flag
工业协议分析2 666c61677b37466f4d3253746b6865507a7d
- [theHunterCOTW] 猎人荒野的召唤-一点资料
游戏介绍 购买建议 [2020-12-17] theHunter 现在有三个捆绑包 2019 Edition,2021 Edition,Complete Collection 单独购买,目前steam ...
- 在 TIME_WAIT 状态的 TCP 连接,收到 SYN 后会发生什么?
周末跟朋友讨论了一些 TCP 的问题,在查阅<Linux 服务器高性能编程>这本书的时候,发现书上写了这么一句话: 书上说,处于 TIME_WAIT 状态的连接,在收到相同四元组的 SYN ...
- POJ1990 题解
题目大意:有若干头牛,每个牛有一个音量值,两头牛能互相听见对方说话需要发出两头牛中音量值较大者的音量*两头牛的距离的音量,求使任意两头牛都互相听见对方需要发出的音量总和.每头牛的音量值可以相同,但坐标 ...
- 深入Mybatis框架
深入Mybatis框架 学习了Spring之后,我们已经了解如何将一个类作为Bean交由IoC容器管理,也就是说,现在我们可以通过更方便的方式来使用Mybatis框架,我们可以直接把SqlSessio ...