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. 2018-2019-2-20175225 实验四《Android开发基础》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张元瑞 学号:20175225 指导教师:娄嘉鹏 实验日期:2019年5月14日 实验时间:13:45 - 21:00 实验序号:实验 ...

  2. OperationCenter Docker运行环境及其依赖启动脚本

    1.Portainer docker rm -f portainer docker run -d -p : --name portainer --restart always portainer/po ...

  3. Oracle数据库用户的密码过期问题处理

    SQL> select username, user_id, account_status,expiry_date, profile from dba_users where username ...

  4. springBoot 动态注入bean(bean的注入时机)

    springBoot 动态注入bean(bean的注入时机) 参考博客:https://blog.csdn.net/xcy1193068639/article/details/81517456

  5. 1、maven的下载,安装,配置

    下载 1.maven官方下载地址: http://maven.apache.org/download.cgi 进入官网: 下载各历史版本官方地址: https://archive.apache.org ...

  6. JavaScript中this的一些练习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 用 Python 解答两道来自阿里伯乐系统的笔试题

    目录 目录 前言 题目一 分析 实现 题目二 分析 实现 前言 朋友到阿里面试,分享两道小题,博主比较闲就试着用 Python 解答一下,实现方式肯定是多种多样的,优劣也会各有不同,欢迎交流. 题目一 ...

  8. 快速入门分布式消息队列之 RabbitMQ(3)

    目录 目录 前文列表 前言 通道 Channel 一个基本的生产者消费者实现 消费者 生产者 运行结果 应用预取计数 应用 ACK 机制 最后 前文列表 快速入门分布式消息队列之 RabbitMQ(1 ...

  9. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  10. Quaternions 四元数

    四元数是一个乱七八糟得到东西还没搞懂搞懂后再补 先添加unity API transform.rotation 是Quaternionlei类并非Vector3向量 不能进行直接转化 那如何将Vect ...