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路由配置-快速上手相关推荐

  1. SpringBoot中oauth2.0学习之服务端配置快速上手

    现在第三方登录的例子数见不鲜.其实在这种示例当中,oauth2.0是使用比较多的一种授权登录的标准.oauth2.0也是从oauth1.0升级过来的.那么关于oauth2.0相关的概念及其原理,大家可 ...

  2. mysql配置 | 快速上手Linux玩转典型应用

    七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习  快速带你入门阅读全文> 正文共2452个字,3张图,预计阅读时间8分钟. 解释 命令 安装服务端 yum in ...

  3. 创建Django项目 目录结构 Url介绍 路由配置

    创建Django项目 文章目录 创建Django项目 创建项目的指令 Django项目的目录结构 `settings.py` 文件介绍 URL 介绍 URL定义 Django如何处理一个URL对应的请 ...

  4. Vue简单快速上手 idea版

    文章目录 版本 插件安装和通过CDN使用Vue Vue的基本语法 v-bind 条件判断 循环 监听事件 表单双绑 1.什么是双向数据绑定 2.在表单中使用双向数据绑定 组件 什么是组件 第一个Vue ...

  5. linux快速上手之多服务器间路由配置

    linux 多服务器间路由配置,把linux变成动态路由器(前提是双网卡) 安装一个软件 yum list quagga yum install quagga quagga配置: cd/etc/qua ...

  6. 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作

    Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...

  7. 【一文到底】【0基础】【快速上手】Django基本使用

    Django web开发 基础 1. Django的安装 和之前python一样,通过pip来安装即可 pip install django django和其他第三方Python模块一样,会在当前py ...

  8. 快速上手Django(一) 项目结构、开发环境、开发流程、视图、视图集

    文章目录 一.Django 基础 1. django 项目的目录结构 2. 开发环境(Pycharm 启动django) 1)先找到mange.py 2)项目配置远程python解释器 3)点击`ed ...

  9. 【Python全栈100天学习笔记】Day41 Django快速上手

    快速上手 Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种方式就变得极度糟糕.为了解决这个问题,开发人员想到了用外部 ...

最新文章

  1. PHP 单例模式继承的实现方式
  2. Hibernate检索策略之5.4一对多单向关联检索策略——Hibernate4究竟怎么玩
  3. 玩转Autorun.inf
  4. [游戏模版21] Win32 物理引擎 能量守恒
  5. 物流公司借接入平台实现异地仓库信息实时掌握
  6. python博客编程_python编程
  7. scala shuffle
  8. java long的包,long longValue()
  9. 【BZOJ3551】Peaks加强版,主席树+kruskal重构+dfs序+倍增思想
  10. DataGuard ORA-01111,ORA-01275文件创建失败问题解决
  11. Mac OS X下的移动光标和文字编辑快捷键
  12. Java 杨辉三角的简单实现
  13. EXCEL数组公式(6),注意聚合函数在数组公式中的用法
  14. 计算机公式上下左右,十五个常用函数公式,值得收藏
  15. 区块链架构与扩容方案
  16. Testdisk 修复磁盘分区表丢失
  17. 在Python中使用Pandas.DataFrame对Excel操作笔记一 - 从Excel里面获取说需要的信息
  18. 零基础入门CV之街道字符识别 Task1 赛题理解
  19. 中国原盐产业发展现状分析,原盐主要应用于化工行业「图」
  20. 举个栗子!Tableau 技巧(107):如何自定义 Server 登录页背景

热门文章

  1. [Usaco2014 Mar]Sabotage
  2. 人工智能学习(一)newff函数介绍
  3. Kylin BI工具集成(JDBC+Zepplin)
  4. 跟心爱的人表白吧 express Love
  5. 交行全国大集中IBP项目亲历记
  6. VC6下miniblink应用开发简单实例
  7. 2009上半年全国计算机技术与软件,关于2009年上半年全国计算机软件专业技术资格和水平考试有关问题的通知...
  8. (一)Lenet5 手写数字识别原理及代码解析
  9. Windows窗口程序运行过程
  10. python2.7 install pyx