Django2.0——路由配置
URL配置就像是Django所支撑网站的目录,它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表。URL需要在urls.py进行配置,与其对应的视图函数写在views.py文件中。url的配置写在urlpatterns列表的path方法中,对于path的功能,下面一一讲解。
path
- path方法第一个参数是url路由的配置,还可以通过<xx>/将输入指定url后多余的部分当作参数传给视图函数,视图函数同样要用一个参数xx来接收它。这里默认包含了一个转化器类型,是path转化器,将匹配任何字符串,当然也包括了
/字符。也可自己指定格式如<int:xx>/,这是指定了一个整形转化器,即只匹配整形作为参数。
转化器的类型如下:
- str,匹配除了路径分隔符(
/)之外的非空字符串,这是默认的形式。 - int,匹配正整数,包含0。
- slug,匹配字母、数字以及横杠、下划线组成的字符串。
- uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
- path,匹配任何非空字符串,包含了路径分隔符
下面一个小例子,通过改写urls和views文件,配置一个hello路径,当输入这个路径,将调用对应的视图函数index。



这里在前面的例子下补充一个int转化器,捕获整形数据。


- path的第二个参数一般是调用视图函数,当然还可能是利用include方法将不同app应用下的子路由在主路由中进行注册。include方法的参数是‘app_name.urls’。这里我们在项目下创建一个app名为music,并用include为子路由注册在主路由中,接着便能在app的urls文件和views文件中操作上述的方法。

在music应用下中分配子路由,并调用改app下的视图函数。



- path的第三个可选参数是一个字典格式的参数,用于传递给视图函数,视图函数用关键字kwargs来接收。
当这个字典参数加到子路由注册中去,则这个字典对于其下的所有子路由都有效。


- path第四个可选参数的关键字是name,name的作用是给url起了一个别名,然后可以在视图函数中利用reverse方法将url解析出来。name 常用在 templates, models, views ……中,也可起到页面重定向的功能。页面重定向的方法是redirect。
下面举个小例子,分别新建两个路由及其对应的两个视图函数,一个模拟旧网页,一个模拟新网页,现在要做的是输入旧网址时,能给我打开新的网页,这就是页面重定向。




给新网页的url分配一个name


re_path
如果上述的path方法中的转化器无法满足你的需求,可以考虑用万能的正则表达式,不过就不是用path方法了,而是re_path,在django2.0之前的版本,还没有自带的转化器,所以之前都是用正则来筛选捕获url中的参数的。
在Python正则表达式中,命名式分组语法为 (?P<name>pattern) ,其中name为名称, pattern为待匹配的模式。下面有个小例子,用大家熟悉的.*?来匹配除换行符外的任意字符。



Django2.0——路由配置的更多相关文章
- Django2.0路由层-URLconf
目录 DJango2.0路由层-URLconf 概述 urlpatterns 实例 path转换器 自定义path转换器 使用正则表达式 命名组(有名分组) URLconf匹配请求URL中的哪些部分 ...
- Django2.0 URL配置
一.实例 先看一个例子: from django.urls import path from . import views urlpatterns = [ path('articles/2003/', ...
- Django2.0 URL配置详解
转自:https://www.cnblogs.com/feixuelove1009/p/8399338.html Django2.0发布后,很多人都拥抱变化,加入了2的行列. 但是和1.11相比,2. ...
- Django2.0路由补充之path,re_path及视图层
以下是Django2.0版本 正则捕获到的参数都是字符串,所以如果函数需要用的其他数据类型,可以在函数中直接转换,也可以在路由中直接转换,如下: 下面实例是匹配整数,传过去的参数就是整数 from d ...
- django2.0 路由规则
Django2.0中URL的路由机制 路由是关联url及其处理函数关系的过程.Django的url路由配置在settings.py文件中ROOT_URLCONF变量指定全局路由文件名称. Django ...
- Django2.0如何配置urls文件
刚开始学django,创建的第一个工程无法启动,后来发现是由于教程是针对较低版本的Django,我用的是Django2.0和Python3.6,两个都是发文为止的最新版本,urls文件设置方法和旧版本 ...
- Core3.0路由配置
前言 MSDN文档,对ASP.NETCore中的路由完整的介绍 https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/routing?vi ...
- python Django2.0如何配置urls文件
刚开始学django,创建的第一个web工程无法启动,后来发现是由于教程是针对较低版本的Django,我用的是Django2.X和Python3.7,urls文件设置方法和旧版本不一致,按照之前的版本 ...
- Django2.0.1开发框架搭建
1.使用vs2017创建空白django项目 2.右键python环境的env---安装python包 升级django到2.0.1和setuptools到38.4.0版本,具体环境如下: 3.配置 ...
随机推荐
- 【分布式】流式计算Storm框架
Storm简介: Storm起源Twitter开源的一个类似于Hadoop的实时数据处理框架,不过两则还是有区别的,Hadoop是批量处理数据,而Storm处理的是实时的数据流. Storm应用场景: ...
- TypeScript——枚举类型
enum类型是对JavaScript标准数据类型的一个补充. 在运行环境下编译成对象, 可用属性名索引, 也可用属性值索引.而其实现原理为:反向映射 (如下例) 数字枚举 enum Role { ...
- 查看 vps 进程网络流量
弄好了 vps 以后,感觉网络流量走的有点多,决定查查看到底什么情况. 首先安装 sar 来看看各个设备消耗的流量 apt-get install sysstat sar 的参数 DEV 表示网口, ...
- Relu激活函数的优点
Relu优点: 1.可以使网络训练更快. 相比于sigmoid.tanh,导数更加好求,反向传播就是不断的更新参数的过程,因为其导数不复杂形式简单. 2.增加网络的非线性. 本身为非线性函数,加入到神 ...
- SASS - 输出格式
SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – 语法 SASS – 变量 SASS- 局部文件(Partial) SASS – 混合(Mixin) SASS ...
- spring boot 生命周期初探
1.MytestApplication package com.gomepay; import org.springframework.boot.Banner; import org.springfr ...
- 3DES 原理
3DES的原理: 加密阶段:用密钥1加密->用密钥2解密->用密钥3加密 解密阶段:用密钥3解密->用密钥2加密->用密钥1解密 版权声明:本文为博主原创文章,未经博主允许不得 ...
- 通过Android的API对Sqlite数据库进行操作
一.增删改查 增 改 查 删 这是删除之前 删除三条 Dao.java package com.example.databasedemo; import android.content.Content ...
- JDBC,ResultSet对像多次使用后再关闭的问题
原文链接:https://yq.aliyun.com/wenzhang/show_111763 问题描述 //代码... ResultSet rs = this.conn.prepareStateme ...
- SQL基础教程(第2版)第3章 聚合与排序:3-1 对表进行聚合查询
3-1 对表进行聚合查询 ● 使用聚合函数对表中的列进行计算合计值或者平均值等的汇总操作.● 通常,聚合函数会对NULL以外的对象进行汇总.但是只有COUNT函数例外,使用COUNT(*)可以查出包含 ...