django基础篇02-url路由系统
django的路由系统:
一、基本用法:
1.path('index', views.index),
# 通过类的方式创建url映射
2.path('home', views.Home.as_view()),
# 通过正则表达式的方式 注意这种方式不能通过path的方式关联,否则正则表达式无效,通过 from django.conf.urls import url,然后通过url(regx,views,kwargs,name)进行url的正则表达式的匹配
3.url(r'detail-(\d+)',views.detail),
4.url(r'detail-(\d+)-(\d+)',views.detail),
5.url(r'detail-(?P<nid>\d+)',views.detail)
实战:
1.通过url(r'detail-(\d+)-(\d+)',views.detail)
urls.py
urlpatterns = [
url(r'detail-(\d+)-(\d+)',views.detail),
]
views.py
# 方式一:
def detail(request,nid,uid):
pass # 方式二:
def detail(request,*args,**kwargs):
pass
以上方式,nid和uid关联的参数,适合调用参数有关系,比如调用'http://127.0.0.1:8080/detail-1-2',则 nid = 1, uid = 2;方式二的args = (1,2),kwargs = {}
可是这不是我们想要的,我们如何让nid和uid和传递的参数关联上,还是通过正则表达式解决参数关联问题
2.通过url(r'detail-(?P<nid>\d+)-(?P<uid>\d+)',views.detail)
urls.py
urlpatterns = [
url(r'detail-(?P<nid>\d+)-(?P<uid>\d+)',views.detail)
]
views.py
# 方式一:
def detail(request,nid,uid):
pass def detail(request,uid,nid):
pass # 方式二:
def detail(request,*args,**kwargs):
pass
这样无论我们如何更换参数的位置,我们的获取的nid都是'/detail-1-2'的第一个参数值,uid始终为第二个参数值;而才是方式二的参数变为 args=() kwargs={'nid': 1,'uid':2}
二、进阶
1.name(对URL路由关系进行命名,以后可以根据名称生成你想要的URL)
urls.py
urlpatterns = [
url('homemodule',views.home,name='m1'),
url(r'disovermodule/(\d+)/(\d+)',views.discover,name='m2'),
url(r'messagemodule/(?P<nid>\d+)/(?P<uid>\d+)',views.message,name='m3')
]
views.py
def func(request,*args,**kwargs):
from django.url import reverse url1 = reverse('m1') #/homemodule/
url2 = reverse('m2',args=(1,2)) #/discovermodule/1/2
url3 = reverse('m3',kwargs={'nid':3,'uid':4}) # /messagemodule/3/4
xxx.html
{% url 'm1' %} #/homemodule
{% url 'm2' 1 2 %} #/discovermodule/1/2
{% url 'm3' nid=3 uid=4 %} #/messagemodule/3/4
注意获取当前URL
request.path_info
django基础篇02-url路由系统的更多相关文章
- day 66 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- day 53 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- 02.Django基础二之URL路由系统
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...
- Django基础二之URL路由系统
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...
- Django基础学习三_路由系统
今天主要来学习一下Django的路由系统,视频中只学了一些皮毛,但是也做下总结,主要分为静态路由.动态路由.二级路由 一.先来看下静态路由 1.需要在project中的urls文件中做配置,然后将匹配 ...
- Django基础篇--模板和路由分发
Django模板 首先什么是一个模板? 简单来说就是一个网页,可以被view响应给用户 目的是为了解决复杂的显示问题 2. 模板的设置问题 setting.py中的TEMPLATES配置 1)BACK ...
- 01: Django基础篇
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- python django基础二URL路由系统
URL配置 基本格式 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数 ...
- Django 02 url路由配置及渲染方式
Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...
- Django框架02 /Django下载安装、url路由分发
Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...
随机推荐
- python之正则匹配match:search findall
match:从开头位置匹配,只匹配一次,开头匹配不上,则不继续匹配 a,b,\w+ match(a,"abcdef") 匹配a >>> re.match(&quo ...
- 使用tushare获取股票实时分笔数据延时有多大
使用tushare获取股票实时分笔数据延时有多大 前几天分享了一段获取所有股票实时数据的代码,有用户积极留言,提出一个非常棒的问题:如果数据本生的延时非常严重,通过代码获取数据再快又有什么用呢? 一直 ...
- jpg图片转换为yuv
ffmpeg -i d:/demo.jpg -s 400x500 -pix_fmt yuvj420p d:/test.yuv ffmpeg -i http://www.test.com/test.fl ...
- LinkedList Stack
- iOS SDK开发之 .a静态库
查看.framework静态库的生成及使用单击此处 注:这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤.环境:xcode 9.2下面我们开始操作: 第一步:创建 ...
- Sass 的 & 符号(ampersands)
重复声明 有时您需要击败第三方 CSS 库的声明来获取样式的所有权: .parent.parent {} 这种方式比使用和 ID,内联样式或!important的压倒性弱,并且它可能比使用任意父元素限 ...
- WPF DevExpress Chart控件多Y轴,指定数据参考的Y轴
当Chart中有两个及以上的Y轴时,我们就要指明图表中的柱子或折线对应的是哪个Y轴了,这时候需要指明柱子或者折线的dxc:XYDiagram2D.SeriesAxisY属性,来设置对应的Y轴(dxc: ...
- Java中判断两个列表是否相等
CollectionUtils.isEqualCollection(final Collection a, final Collection b) CollectionUtils工具类中有一个查看两个 ...
- dcef3 指出一个坑
dcef3 指出一个坑 http://ju.outofmemory.cn/entry/80119 BccSafe's Blog 2014-06-11 2388 阅读 dcef3提供了TChromi ...
- 一种局部二值化算法:Sauvola算法
之前接触过全局二值化(OTSU算法),还有OPENCV提供的自适应二值化,最近又了解到一种新的局部二值化算法,Sauvola算法. 转载自:http://www.dididongdong.com/ar ...