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路由系统的更多相关文章

  1. day 66 Django基础二之URL路由系统

    Django基础二之URL路由系统   本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...

  2. day 53 Django基础二之URL路由系统

    Django基础二之URL路由系统   本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...

  3. 02.Django基础二之URL路由系统

    一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...

  4. Django基础二之URL路由系统

    一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...

  5. Django基础学习三_路由系统

    今天主要来学习一下Django的路由系统,视频中只学了一些皮毛,但是也做下总结,主要分为静态路由.动态路由.二级路由 一.先来看下静态路由 1.需要在project中的urls文件中做配置,然后将匹配 ...

  6. Django基础篇--模板和路由分发

    Django模板 首先什么是一个模板? 简单来说就是一个网页,可以被view响应给用户 目的是为了解决复杂的显示问题 2. 模板的设置问题 setting.py中的TEMPLATES配置 1)BACK ...

  7. 01: Django基础篇

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  8. python django基础二URL路由系统

    URL配置 基本格式 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数 ...

  9. Django 02 url路由配置及渲染方式

    Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...

  10. Django框架02 /Django下载安装、url路由分发

    Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...

随机推荐

  1. for循环,foreach, map,reduce用法对比+for in,for of

    for不做赘述,相当简单: foreach方法: forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数. 注意: forEach() 对于空数组是不会执行回调函数的. array.f ...

  2. [CSP-S模拟测试]:数列(数学)

    题目传送门(内部题95) 输入格式 第一行三个整数$n,a,b$,第二行$n$个整数$x_1\sim x_n$表示数列. 输出格式 一行一个整数表示答案.无解输出$-1$. 样例 样例输入:2 2 3 ...

  3. iterator删除元素

    总结 在需要的删除等操作时,不能使用简单的foreach,因为其底层依然用的是Iterator,但是调用的是集合中的remove方法. 使用迭代器对象调用其中的remove方法,以保证线程同步.

  4. 【零售App】—— react/ant design mobile项目爬坑

    一.H5制作 - 图片文本的动画效果 bug:打开一个模板,添加图片,添加动画效果,若先选定动画效果,再调节动画时间和延迟时间,则动画和延迟时间没有改变:若先调节动画时间和延迟时间在选定动画效果,则动 ...

  5. MVC、MVP 和 MVVM

    MVC Model–View–Controller 模型:管理应用程序的数据.逻辑和规则 视图:展示数据(可以直接从模型中获取数据) 控制器:接收输入并将其转化成模型和视图的命令 MVP Model– ...

  6. QT Desinger设计窗体应用程序框架

    目录 目录 前言 系统软件 QT Designer Using QT Designer Open QTDesigner Tool Widget Box QT Designer的布局 属性栏 示例 i ...

  7. Delphi 判断按键状态

    Delphi 判断按键状态 http://blog.sina.com.cn/s/blog_54da9cc001015di1.html (2012-04-05 14:22:50) 标签: 杂谈 分类:  ...

  8. 11.metasploit辅助模块----基本Exp----ARP欺骗中间人MITM----WordPress破解

    metasploit辅助模块 信息收集 auxiliary scanners 使用metasploitable靶机 桥接 同一局域网 msfconsole nmap -sT 靶机IP nmap -sS ...

  9. sourceInsight下标题栏显示文件完整路径

    用sourceInsight看代码方便,但是标题栏中不显示文件的完整路径,有时候就会很麻烦,做如下设置即可显示完整的路径 options -> preferences -> Display ...

  10. Java中字母大小写的转换

    例:String str = "AbC"; 把字符串所有字母变成小写: System.out.println(str.toLowerCase()); 把字符串所有字母大写: Sys ...