Django路由配置-快速上手
Django路由配置-快速上手
Django路由系统配置代码在urls.py中,该文件在创建项目时自动生成,一般在项目目录下。
路由系统URL基本格式
在urls.py文件中配置的路由,都存放在一个名为urlpatterns的变量中,这个变量是列表类型
from django.contrib import admin
#从django.contrib模块中导入admin函数,这个函数加载DjangoAdmin管理后台的URL。
from django.urls import path
#从django.urls模块中导入include()和path()两个函数。
#include()用于导入另一个URL配置文件;
#path()使用正则表达式匹配浏览器中的URL,把它映射到视图函数上。#urlpatterns 中的每一个列表项就是一条对应关系(URL与视图函数的对应关系),这种对应关系称作URL配置(URLconf)。
urlpatterns = [path('admin/', admin.site.urls),path('test/', include('xxxx.urls')),path('test/<int:id>', views.test),
]
path (URL正则表达式,视图函数,参数,别名),
path()中的第一个参数称为URL正则表达式,它是字符串形式。
第二个参数是视图函数名,第一个参数和第二个参数是对应关系。
后面两个参数是可选的,第三个参数表示可以传给视图函数的额外的参数,参数是字典类型
第四个参数给这个对应关系列表项的URL起了别名,使程序可以按名字调用这个配置项。
path()的URL参数
path('test/<int:id>', test)
path()函数的第一个参数的角括号里的内容,称作URL参数。
URL参数冒号左边为参数数据类型,右边为参数名称,如<int:id>表示的参数名称为id,数据类型为int。
URL参数主要有以下数据类型:
str:匹配的任意非空字符串,但不包括分隔符“/”。
int:匹配0或任意正整数。●slug:匹配字母、数字、短横线、下划线组成的字符串。
uuid:匹配一个格式化的UUID(Univerally Unique Identifier,通用唯一识别码),UUID是由数字、小写字母、破折号等组成的唯一识别码。
path:匹配任意非空字符串,包含分隔符“/”。
re_path()函数
re_path()函数中URL正则表达式中的URL参数用的是命名式分组语法
re_path(data1/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/', views.test),
re_path()中URL参数year通过[0-9]{4}这个正则表达式来严格匹配4位的整数,month通过[0-9]{2}这个正则表达式来严格匹配2位的整数。
一个括号就是一个分组,一个分组有一个参数,因为是命名式分组,所以传给视图函数的也是命名参数。
路由分发
from django.urls import path,include
urlpatterns = [path('myapp/',include('myapp.urls')),
]
路由分发使用的是include()方法,需要提前导入相应的模块path和include。
include()括号内的字符串要用引号括起来,参数是导入的其他配置模块(文件),它表示的是导入的模块的路径字符串,路径以圆点分割。
建立二级路由
from django.urls import path,include
urlpatterns = [path('test/',views.test),
]
二级路由配置建立后,对应关系变成了一级路由和二级路由串联起来与视图函数的对应。
如“path(‘test/’, views.test),”的实际对应关系变成“path(‘myapp/test/’, views.test),”的对应关系。
路由命名空间
多个应用程序使用相同的名称也可以通过命名空间把它们区分开。
from django.urls import path,include
urlpatterns = [
# 通过include()函数导入二级配置模块,并设置命名空间
path ('app1/', include('app1.urls', namespace='app1')),
path ('app2/', include('app2.urls', namespace='app2')),
]#app01中的urls.py(二级配置文件),代码如下。
from django.urls import path,include
from app1 import views
# 指定命名空间
app_name = 'app01'
urlpatterns = [
# 给配置项命名为testpath('test/', views.test, name='test')
]
app02中的urls.py(二级配置文件),代码如下。
from django.urls import path,include
from app2 import views
app_name = 'app02'
urlpatterns = [# 给配置项命名为testpath('test/', views.test, name='test')
]
两个应用程序的URL名称重复
我们反向解析URL的时候就可以通过命名空间的名称得到正确的URL
{% url 'app01:test' %}
在views中的函数中使用以下代码反向解析
v = reverse('app01:test')
Django路由配置-快速上手相关推荐
- SpringBoot中oauth2.0学习之服务端配置快速上手
现在第三方登录的例子数见不鲜.其实在这种示例当中,oauth2.0是使用比较多的一种授权登录的标准.oauth2.0也是从oauth1.0升级过来的.那么关于oauth2.0相关的概念及其原理,大家可 ...
- mysql配置 | 快速上手Linux玩转典型应用
七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习 快速带你入门阅读全文> 正文共2452个字,3张图,预计阅读时间8分钟. 解释 命令 安装服务端 yum in ...
- 创建Django项目 目录结构 Url介绍 路由配置
创建Django项目 文章目录 创建Django项目 创建项目的指令 Django项目的目录结构 `settings.py` 文件介绍 URL 介绍 URL定义 Django如何处理一个URL对应的请 ...
- Vue简单快速上手 idea版
文章目录 版本 插件安装和通过CDN使用Vue Vue的基本语法 v-bind 条件判断 循环 监听事件 表单双绑 1.什么是双向数据绑定 2.在表单中使用双向数据绑定 组件 什么是组件 第一个Vue ...
- linux快速上手之多服务器间路由配置
linux 多服务器间路由配置,把linux变成动态路由器(前提是双网卡) 安装一个软件 yum list quagga yum install quagga quagga配置: cd/etc/qua ...
- 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作
Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...
- 【一文到底】【0基础】【快速上手】Django基本使用
Django web开发 基础 1. Django的安装 和之前python一样,通过pip来安装即可 pip install django django和其他第三方Python模块一样,会在当前py ...
- 快速上手Django(一) 项目结构、开发环境、开发流程、视图、视图集
文章目录 一.Django 基础 1. django 项目的目录结构 2. 开发环境(Pycharm 启动django) 1)先找到mange.py 2)项目配置远程python解释器 3)点击`ed ...
- 【Python全栈100天学习笔记】Day41 Django快速上手
快速上手 Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种方式就变得极度糟糕.为了解决这个问题,开发人员想到了用外部 ...
最新文章
- PHP 单例模式继承的实现方式
- Hibernate检索策略之5.4一对多单向关联检索策略——Hibernate4究竟怎么玩
- 玩转Autorun.inf
- [游戏模版21] Win32 物理引擎 能量守恒
- 物流公司借接入平台实现异地仓库信息实时掌握
- python博客编程_python编程
- scala shuffle
- java long的包,long longValue()
- 【BZOJ3551】Peaks加强版,主席树+kruskal重构+dfs序+倍增思想
- DataGuard ORA-01111,ORA-01275文件创建失败问题解决
- Mac OS X下的移动光标和文字编辑快捷键
- Java 杨辉三角的简单实现
- EXCEL数组公式(6),注意聚合函数在数组公式中的用法
- 计算机公式上下左右,十五个常用函数公式,值得收藏
- 区块链架构与扩容方案
- Testdisk 修复磁盘分区表丢失
- 在Python中使用Pandas.DataFrame对Excel操作笔记一 - 从Excel里面获取说需要的信息
- 零基础入门CV之街道字符识别 Task1 赛题理解
- 中国原盐产业发展现状分析,原盐主要应用于化工行业「图」
- 举个栗子!Tableau 技巧(107):如何自定义 Server 登录页背景
热门文章
- [Usaco2014 Mar]Sabotage
- 人工智能学习(一)newff函数介绍
- Kylin BI工具集成(JDBC+Zepplin)
- 跟心爱的人表白吧 express Love
- 交行全国大集中IBP项目亲历记
- VC6下miniblink应用开发简单实例
- 2009上半年全国计算机技术与软件,关于2009年上半年全国计算机软件专业技术资格和水平考试有关问题的通知...
- (一)Lenet5 手写数字识别原理及代码解析
- Windows窗口程序运行过程
- python2.7 install pyx