一、分发地址

在APP中创建urls.py文件,将属于该APP的url地址都写入到这个文件中,当程序收到用户发送的请求时,先在根目录的urls.py文件中查找该地址属于哪个APP,将这个请求分发到该APP中,然后在APP的url.py中找到具体信息。

 from django.urls import path,include #include就是分发函数
     urlpatterns = [
         path('1/',include(‘index.urls’))     #index是APP名字
 ]

二、带变量的URL

一个url地址可以代表多个不同页面,需要用到变量,URL的变量类型有四种,分别是字符串类型、整型、slug和uuid。其中默认是字符串类型。

path('<year>/<int:month>/<slug:day>',``````)

在URL中使用<>可以设置变量,在括号中以冒号分为两个部分,冒号前为变量类型,不加则为字符串类型,冒号后为变量名。

三、在URL中使用正则表达式

在url中可以使用正则表达式来限制可变范围,有两种引入方式:

#方法一
from django.urls import path,re_path

urlpatterns = [
    re_path('(?P<year>(\d+))',``````),
]

#方法二
from django.urls import path
from django.conf.urls import url

urlpatterns = [
    url(r'......',``````),    #必须在url前加r
]

  注意:如果在URL中使用了正则,则URL末端必须加上斜杠或者其他字符,否则正则表达式就不会生效,输入无限长的字符串都可以正常访问。

四、URL中设置参数

1、参数name

  除了在URL中设置变量外,还可以为URL起别名,可以在html模板中使用:

path('hello/',views.index, name='myname')
<body>
    <a href="{% url 'myname' %}">click this<a>
</body>

给URL起别名看似没有必要,但是如果改变了URL的路径,则需要修改所有html中用到该URL的地方,这个时候使用别名就可以省去这些麻烦。

在templates和views中,都可以通过别名来生成url地址:

2、其他参数

  除了name参数外,还可以设置一种字典类型的参数,这种参数相当于为html模板定义变量并赋值,也只能在模板中使用。

path('hello',views.index,name='myname',{'change':'yes'})
<a href="{% url 'name' %}">{{ chang }}</a>    #这里的{{change}}就会在页面上显示为yes

五、Django的路径添加问题

  在settings中添加 APPEND_SPASH = False 可以阻止django自动添加url最后的斜杠。

Django-1-URL路由系统的更多相关文章

  1. Django的URL路由系统

    一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...

  2. Django之URL路由系统

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

  3. Django之URL(路由系统)用法

    路由系统 路由系统概念 简而言之,路由系统就是路径和视图函数的一个对应关系.django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里 ...

  4. 【Django】url(路由系统)

    1.单一路由对应 url(r'^index/',views.index), 2.基于正则的路由 url(r'^index/(\d*)', views.index), url(r'^manage/(?P ...

  5. Django学习:url路由系统

    一.MTV模型 1.Django的MTV分别代表: Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM) Template(模板):放所有的html文件 模板语法:目的是将白变量( ...

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

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

  7. django 中的路由系统(url)

    路由系统 根据Django约定,一个WSGI应用里最核心的部件有两个:路由表和视图.Django框架 的核心功能就是路由:根据HTTP请求中的URL,查找路由表,将HTTP请求分发到 不同的视图去处理 ...

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

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

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

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

  10. URL路由系统-命名空间

    命名空间 1.工程Django下的urs.py from django.conf.urls import url,include from django.urls import path,re_pat ...

随机推荐

  1. Mac进行 usr/bin 目录下修改权限问题,operation not permitted

    一般情况下我们在使用mac系统过程中下载一些文件.新建一些项目之后,这些文件都会默认是只读状态,这时我们只需要简单的一句权限设置命令就可以解决 你要修改文件上层目录的路径 但是我们在对 usr/bin ...

  2. vue 项目设置实现通过本地手机访问

    1.查询ip地址 win+R打开cmd 窗口 输入ipconfig 找到IPV4地址   192.168.x.xxx 2.在vue项目config文件夹中的index.js,将localhost换为i ...

  3. openstack搭建之-基础服务配置(7)

    基础环境准备,所需服务器及说明 172.16.2.51     base.test.com 基础服务节点 172.16.2.52     ctrl.test.com 控制节点 172.16.2.53  ...

  4. yum设置本地源

    创建本地源的文件要放入yum.repos.d目录下,名字随便取,但是后缀要求是.repo 1创建目录 mkdir -p /mnt/cdrom 2虚拟机挂载光盘 mount /dev/cdrom /mn ...

  5. 数据标记系列——图像分割 & PolygonRNN++(一)

    当前大多数图像语义分割算法都是基于深度学习的方式,但是深度学习的效果很大程度上是依赖于大量训练数据的.目前的图像分割方法无非两种,一种是通过标注人员手动标注,如Cityscapes(提供无人驾驶环境下 ...

  6. NOIP2001提高组复赛B 数的划分

    题目链接:https://ac.nowcoder.com/acm/contest/249/B 题目大意: 略 分析1(记忆化搜索): 方法为减而治之,把n划分成k份的答案就相当于每次把n分成a,b两个 ...

  7. 4月10日java上机任务

    1. 一维数组的创建和遍历. 声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数.要求: (1)    首先按“顺序”遍历,即打印顺序为:从第一个人到第四个人: (2)    ...

  8. 对Datatable中过长内容实行省略话

    , 16) + '...</a>' } // 点击跳转的实现 else { return '<a id="taskFocus" href="/task_ ...

  9. Vue组件以及组件之间的通信

    一.组件的注册 1. 全局组件注册 1. 注册基本语法Vue.component Vue.component("my_header", { template: `<div&g ...

  10. vue1.0+vue2.0实现选项卡

    通常我们写tab选项卡的时候,一般都是用jq等去操作dom,给同级元素移除active类,然后,给被点击元素添加active类,用vue实现也是同样的原理,都是操作active类. 我们都知道用vue ...