分组,命名分组,url的命名和反向解析
1.位置分组
匹配到参数,按照位置参数的方式传递给视图函数 视图函数需要定义形参接收变量
1.写在url里面的:
# 删除
url(r'^del_class/(\d+)',views.del_class),
2.写在html里面的:
<a class="btn btn-danger btn-sm" href="/del_class/{{ i.pk }}/">删除</a>
3.写在视图函数里面的:
def del_class(request,pk):#在request后面写传进来的参数 可以设置默认值
if not models.ClassTable.objects.filter(pk=pk):
return HttpResponse('数据不存在')
models.ClassTable.objects.get(pk=pk).delete()
return redirect('/class_list/')
2命名分组:
匹配到关键字参数,按照关键字参数的方式传递给视图函数 视图函数需要定义关键字参数
传到视图函数里面的必须是关键字参数名
# 删除
url(r'^del_class/(?P<pk>\d+)',views.del_class),
捕获的参数永远都是字符串
参数说明:
- 正则表达式:一个正则表达式字符串
- views视图:一个可调用对象,通常为一个视图函数
- 参数:可选的要传递给视图函数的默认参数(字典形式)
- 别名:一个可选的name参数
注意:
Django 2.0版本中的路由系统是下面的写法(官方文档):
from django.urls import path,re_path urlpatterns = [
path('articles/2003/', views.special_case_2003),
path('articles/<int:year>/', views.year_archive),
path('articles/<int:year>/<int:month>/', views.month_archive),
path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
]
3.include其他的urls.py
把urls.py放到app里面,
项目里的urls 导入app里面的urls.py
from django.conf.urls import url,include#印可肉的
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'app01/',include('app01.urls'))
] 多个app上面可以额外的写前缀
4.URL的命名和反向解析
给url起别名:
1.普通url
# 删除
url(r'^del_class/(?P<pk>\d+)',views.del_class,name='bieming' ),
通过url的名字反向解析拿出rul的东西
2.使用
在视图函数里引入模块 用reverse 拿出来的是字符串类型的
from django.urls import reverse
reverse('别名') # ——》 ‘/app01/del_class/’
模板中使用: 如果有命名分组的话,要给命名分组传值
<a class="btn btn-danger btn-sm" href="{% url 'bieming' i.pk %}">删除</a>
namespace指定名称空间
url(r'app01/',include('app01.urls',namespace='app01')),
url(r'app02/',include('app02.urls',namespace='app02'))
app里面的
url(r'^home/$', views.home, name='home'), # app01
视图:
reverse(’app01:home‘) ——》 /app01/home/
reverse(’app02:home‘) ——》 /app02/home/
模板:
{% url 'app01:home' %} —》 /app01/home/
分组,命名分组,url的命名和反向解析的更多相关文章
- Django路由系统-URL命名&URL反向解析
命名URL和URL反向解析 前言 起始样式,HTML中的href是写死的,不能更改,如下示例代码: # urls中 urlpatterns = [ url(r'^admin/', admin.site ...
- Django之url反向解析
在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图 ...
- django系列3.2--url的别名和反向解析 reverse
命名URL和反向解析 在网页中某些要提交的地址等,需要改变的时候,此时网页过多,如果一个一个的去改,工作量巨大,这时就可以用到命名url,在html文件的模版中,只写命名,这样当需要我们改变urls. ...
- Django 正向解析与反向解析
正向解析就是按照顺序查找访问(urls.py---view--templates) 反向解析就是根据命名空间命名来调到指定的页面 用反向解析的原因: 随着功能的增加会出现更多的视图,可能之前配置的正则 ...
- django路由匹配、反向解析、无名有名反向解析、路由分发、名称空间
目录 django请求生命周期流程图 1.Django请求的生命周期的含义 2.Django请求的生命周期图解及流程 3.Django的请求生命周期(分布解析) 路由层 1.路由匹配 2.path转换 ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间
Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间 一丶URLconf配置 ...
- django中路由系统和视图的对应关系(值的传递)-->主要内容(位置参数、关键字参数、额外参数、include分组[urls的分发]、命名分组、反向解析、APPEND_SLASH)
路由系统也就是 urls.py文件,视图就是 views.py文件 路由系统里面要注意的事项 urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续. 若要从UR ...
- Django反向解析与分组命名
1.图书管理系统中使用分组或命名分组.URL的命名和反向解析: 2.删除功能三合一: urls.py文件 from app_book import views urlpatterns = [ url( ...
随机推荐
- linux安装dpkg安装缺少依赖项的解决
问题: dpkg: error processing package rxvt:i386 (--install): dependency problems - leaving unconfigured ...
- 核心一:IoC
IoC 1.中文名称:控制反转 2.英文名称:(Inversion of Control) 3.IoC是什么? 3.1 IoC 完成的事情原先由程序员主动通过new 实例化对象事情,转交给Spring ...
- linux 磁盘挂载及查看磁盘
blkid命令实例 .列出当前系统中所有已挂载文件系统的类型: sudo blkid .显示指定设备 UUID: sudo blkid -s UUID /dev/sda5 .显示所有设备 UUID: ...
- lnmp源码编译安装zabbix
软件安装 Mysql 安装 tar xf mysql-5.7.13-1.el6.x86_64.rpm-bundle.tar -C mysql rpm -e --nodeps mysql-libs-5 ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记六之铭文升级版
铭文一级: 整合Flume和Kafka的综合使用 avro-memory-kafka.conf avro-memory-kafka.sources = avro-sourceavro-memory-k ...
- Learning Emacs
一.退出和缩小emacs C-x C-c C-z 二.打开和关闭文件 C-x C-f C-x C-c 三.移动 C-b 后退 C-p 向上 C-n 向下 C-f 向前
- mysql_结构
代码执行结构:顺序结构.分支机构.循环结构 分支结构:实现准备多个代码块,按照条件选择执行某段代码 在mysql中只有if分支 基本语法 if 条件判断 then -- 满足条件要执行的代码; els ...
- c#运用反射获取属性和设置属性值
/// <summary> /// 获取类中的属性值 /// </summary> /// <param name="FieldName">&l ...
- java并发编程基础-ReentrantLock及LinkedBlockingQueue源码分析
ReentrantLock是一个较为常用的锁对象.在上次分析的uil开源项目中也多次被用到,下面谈谈其概念和基本使用. 概念 一个可重入的互斥锁定 Lock,它具有与使用 synchronized 相 ...
- Scala_特质
特质 特质概述 Java中提供了接口,允许一个类实现任意数量的接口 在Scala中没有接口的概念,而是提供了“特质(trait) ”,它不仅实 现了接口的功能,还具备了很多其他的特性 Scala的特质 ...