diango中的url路由系统
一.url配置
url本质是url与要为该url调用的视图函数之间的映射表
urlpatterns = [正则,视图函数[,别名]]
二.正则表达式
1.匹配原则
django是循环urlpatterns这个列表,一旦匹配到,就不再往下进行匹配
2.分组匹配
把正则进行分组r"^index/([0-9]{4})/([0-9]{2})/" 分组后,视图函数就要用位置参数来接收值,正则捕获的都是字符串格式
3.命名分组匹配
把正则进行分组并命名,r"^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/",命名分组后,传给视图函数的参数就是关键字参数了,需要用对用的year,month形参名来接收参数
4.优化匹配
由于django是循环匹配的,所有多个应用时数据量大匹配的比较慢.就有了分发include模块
url(r"^app1/",include(app1.urls)),先匹配前面的,然后再去app1.urls匹配(需要在每个app中创建urls.py)
三.别名和反向解析
1.别名
url(正则,视图函数,name = "xxx"),name的值就是别名
2.反向解析
html中的反向解析,{% url "xxx" [参数] %},其实就是模板渲染
视图函数中的反向解析,redirect(reverse("别名",[*args]))
diango中的url路由系统的更多相关文章
- MVC中的URL路由(一)
URL路由系统通过对请求地址进行解析从而得到以目标Controller名称为核心的路由数据.Url路由系统最初是为了实现请求url与物理文件路径分离而建立的,MVC的Url Route是将Url地址与 ...
- URL路由系统-命名空间
命名空间 1.工程Django下的urs.py from django.conf.urls import url,include from django.urls import path,re_pat ...
- python django基础二URL路由系统
URL配置 基本格式 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数 ...
- 转:在ASP.NET MVC中通过URL路由实现对多语言的支持
对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎 ...
- 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 ...
- Django的URL路由系统
一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...
- Django之URL路由系统
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...
- Django之URL(路由系统)用法
路由系统 路由系统概念 简而言之,路由系统就是路径和视图函数的一个对应关系.django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里 ...
随机推荐
- C# 栈 、队列的概念
栈: 也是System.Collections下的数据结构 存储依然是Object类型的对象 Stack 名字 = new Stack(); Count:实际拥有的元素个数 栈的释放顺序是先进后出(后 ...
- Excel宏录制、数据透视表、合并多个页签
前段时间做数据分析的时候,遇到很多报表文件需要处理,在此期间学习了很多Excel操作,特此做笔记回顾. Excel宏录制 打开开发者工具 打开Excel文件,选择”文件”-->“选项”--> ...
- 谷歌浏览器内核Cef js代码整理(三) 字符串处理
*字符串截取方法*/ var s="abc_def[ghi]jk[i]"; var temp;function CopyFromStr(str_source,str_key, bl ...
- 实验二:Linux下Xen环境的安装
实验名称: Linux下Xen环境的安装(centOS7) 实验环境: 本次实验基本是在centOS7的环境下完成,系统内核和系统版本如下: 实验要求: 为centOS7的环境下安装Xen的平台,能够 ...
- 第一课了解SQL
1.1 数据库基础 其实一直在使用这数据库,当你在邮箱中查询名字时,当在网站上进行搜索,在自动取款机上使用ATM卡,这些操作都是在使用数据库 1.1.1 数据库 数据库:保存有组织的数据的容器(通 ...
- docker上搭建consul集群全流程
consul简介: consul是提供服务发现.简单配置管理.分区部署的服务注册发现解决方案.主要特性:服务发现\健康检查\基于Key-Value的配置\支持TLS安全通讯\支持多数据中心部署 con ...
- MYSQL5.7实时同步数据到TiDB
操作系统:CentOS7 mysql版本:5.7 TiDB版本:2.0.0 同步方法:使用TiDB提供的工具集进行同步 说明: 单机mysql同步时,可以直接使用binlog同步, 但mysql集群进 ...
- python大法好——装饰器、生成器、迭代器
1.装饰器 1. 不能修改被装饰的函数的源代码 2. 不能修改被装饰的函数的调用方式 实现装饰器知识储备: 1 函数即“变量” 2 高阶函数 a:把一个函数名当做实参传给另外一个函数(不修改 ...
- 【浅说】堆(heap)和栈(stack)区别
在了解堆与栈之前,我们想来了解下程序的内存分配 一个编译的程序占用的内存分为以下几个部分 : 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式 ...
- IOS 发布 升级新版本
ERROR ITMS-90725: "SDK Version Issue. ERROR ITMS-90725: "SDK Version Issue. This app was b ...