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_pathurlpatterns = [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),
]

View Code

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/

转载于:https://www.cnblogs.com/xihuanniya/p/10071728.html

分组,命名分组,url的命名和反向解析相关推荐

  1. Django视图层:URL的反向解析(主路由include之namespace,子路由之name,模板标签{%url%},视图reverse()函数,反向解析示例,URL命名空间

    一.视图层The view layer Django 具有 "视图" 的概念,负责处理用户的请求并返回响应. 二.URL反向解析Reverse resolution of URLs ...

  2. Django反向解析

    Django反向解析 通过视图函数的名称来解析出视图函数的访问路由 1.用途 当视图越来越多的时候,可能会觉得之前配置的路由不够准确,如果修改配置的路由,那么之前在页面中填写的超链接的网址都需要修改, ...

  3. python-正则表达式-单字符匹配_多字符匹配_匹配分组_命名分组

    正则表达式 正则表达式定义和作用 正则表达式的定义: 是约束字符串匹配某种形式的规则 正则表达式的作用: 检测某个字符串是否符合规则 提取网页字符串中想要的数据 正则表达式所包含的元素种类 正则表达式 ...

  4. 命名分组(?name....)

    捕获组分为: 普通捕获组(Expression) 命名捕获组(?Expression) 普通捕获组 从正则表达式左侧开始,每出现一个左括号"("记做一个分组,分组编号从 1 开始. ...

  5. 捕获分组和非捕获分组以及命名分组

    下面由一个例子引出非捕获组. 有两个金额:8899¥.显然,前一个是8899元的人民币,后一个是6688元的美元.我现在需要一个正则,要求提炼出它们的货币金额和货币种类.正则可以这写:(\\d)+([ ...

  6. 正则表达式的命名分组

    语法格式:(?<name>-) 命名分组也是捕获性分组,它将匹配的字符串捕获到一个组名称或编号名称中,在获得匹配结果后,可通过分组名进行获取. 如下是一个python的命名分组的例子: i ...

  7. Django 的反向解析与有无名分组

    无名分组(将加括号的正则表达式匹配到的内容当做位置参数自动传递给对应的视图函数)url(r'^test/(\d+)/',views.test), # 匹配一个或多个数字def test(request ...

  8. Web框架之Django_03 路由层了解(路有层 无名分组、有名分组、反向解析、路由分发 视图层 JsonResponse,FBV、CBV、文件上传)

    阅读目录 一.路由层:(Django的路由系统) 二.伪静态网页和虚拟环境: 三.FBV与CBV.JsonResponse.文件上传 一.路由层:(Django的路由系统) URL配置(Django项 ...

  9. Django05-1: 有名分组、无名分组与反向解析

    有名.无名分组 分组正则表达式,加小括号 url(r'^test/(\d+)', views.test),def test(request,xx):print(xx)return HttpRespon ...

最新文章

  1. python100个必背知识-学Python必须背的42个常见单词,看看你都会吗?
  2. Python「八宗罪」
  3. 工业用微型计算机(28)-dos和bios功能调用(2)-int 21h
  4. 网易云信欢乐颂(送),领取“五美”送麻麻
  5. jQuery live事件说明及移除live事件方法
  6. php unexpected t_object_operator,php - PHP中的“Unexpected T_OBJECT_OPERATOR”错误
  7. 当你学不进去的时候 不妨看看大脑是怎么想的
  8. clang命令编译c++程序时报错
  9. catia车灯设计——一些设置
  10. 贴片电阻、贴片电容的封装与其额定功率的关系
  11. LaTEX 表格内容换行
  12. 张亚勤退休百度:一个耐人寻味的微笑
  13. 67.220.92.12 /forum index.php,http://67.220.92.21/forum/inde PHP静态类
  14. 如何轻松关闭华为云中的服务和资源
  15. OpenResty 在又拍云容器平台中的应用
  16. 微信小程序渐变色按钮,好看的小程序按钮样式
  17. BUU刷题记-网鼎杯专栏2
  18. c语言变量是如何存储,C语言变量存储
  19. 快乐的强化学习2——DQN及其实现方法
  20. Docker容器与虚拟化技术——部署KVM虚拟化平台

热门文章

  1. (七) DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控...
  2. 机器学习基石第三讲:types of learning
  3. Insertion Sort List,Merge Two Sorted Lists,Sort List
  4. 使用swipecard实现卡片视图左右滑动监听以及点击监听
  5. 直接调用android原生接口实现点击直接拨打电话功能
  6. VS2010与.NET4系列 23.Visual Studio 2010 扩展管理器(和新的 VS2010 PowerComman
  7. 哈·曼丁的故事(三)
  8. ORA-16019: cannot use LOG_ARCHIVE_DEST_1 解决方法
  9. ORACLE11G RAC 在 centeros5.5 的安装日志
  10. android 事件传递