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的命名和反向解析的更多相关文章

  1. Django路由系统-URL命名&URL反向解析

    命名URL和URL反向解析 前言 起始样式,HTML中的href是写死的,不能更改,如下示例代码: # urls中 urlpatterns = [ url(r'^admin/', admin.site ...

  2. Django之url反向解析

    在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图 ...

  3. django系列3.2--url的别名和反向解析 reverse

    命名URL和反向解析 在网页中某些要提交的地址等,需要改变的时候,此时网页过多,如果一个一个的去改,工作量巨大,这时就可以用到命名url,在html文件的模版中,只写命名,这样当需要我们改变urls. ...

  4. Django 正向解析与反向解析

    正向解析就是按照顺序查找访问(urls.py---view--templates) 反向解析就是根据命名空间命名来调到指定的页面 用反向解析的原因: 随着功能的增加会出现更多的视图,可能之前配置的正则 ...

  5. django路由匹配、反向解析、无名有名反向解析、路由分发、名称空间

    目录 django请求生命周期流程图 1.Django请求的生命周期的含义 2.Django请求的生命周期图解及流程 3.Django的请求生命周期(分布解析) 路由层 1.路由匹配 2.path转换 ...

  6. Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式

    Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...

  7. Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间

    Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间 一丶URLconf配置 ...

  8. django中路由系统和视图的对应关系(值的传递)-->主要内容(位置参数、关键字参数、额外参数、include分组[urls的分发]、命名分组、反向解析、APPEND_SLASH)

    路由系统也就是 urls.py文件,视图就是 views.py文件 路由系统里面要注意的事项 urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续. 若要从UR ...

  9. Django反向解析与分组命名

    1.图书管理系统中使用分组或命名分组.URL的命名和反向解析: 2.删除功能三合一: urls.py文件 from app_book import views urlpatterns = [ url( ...

随机推荐

  1. Java利用递归实现扫雷

    package 扫雷; import java.math.*; import java.util.Scanner; public class 扫雷 { //记录翻开次数 static int k=0; ...

  2. PHP字符串位置相关的函数

    strpos函数 描述:将返回一个字符串在另一个字符串第一次出现的位置 语法:int strpos(string haystack, mixed needle [,int offset]); 相反地 ...

  3. Our Future

    The world is betting on how to win the football game: But I'm betting on how to win your heart: Mayb ...

  4. 2019.01.19 codeforces915E.Physical Education Lessons(ODT)

    传送门 ODT水题(当然可以上线段树) 支持区间01覆盖,询问全局1的个数. 思路:直接上ODTODTODT. 不会的点这里 代码: #include<bits/stdc++.h> #de ...

  5. 2018.10.25 atcoder Leftmost Ball(计数dp+组合数学)

    传送门 dp妙题啊. 我认为DZYODZYODZYO已经说的很好了. 强制规定球的排序方式. 然后就变成了一个求拓扑序数量的问题. 代码: #include<bits/stdc++.h> ...

  6. (7)Why 30 is not the new 20

    https://www.ted.com/talks/meg_jay_why_30_is_not_the_new_20/transcript 00:12When I was in my 20s, I s ...

  7. WM_PAINT和WM_ERASEBKGND消息

    1.OnPaint()函数是窗口重绘消息WM_PAINT的响应函数,当窗口重绘时会产生WM_ERASEBKGND消息和WM_PAINT消息,而且WM_ERASEBKGND会先于WM_PAINT产生,所 ...

  8. top k问题

    1.top k问题 在海量数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最高的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为top K问题.例如,在搜索引擎中,统计搜索最 ...

  9. JDK 1.5、1.6 & 中文版API,J2EE5API大全(借鉴)

    个人分类: Java文档           Sun 公司提供的Java API Docs是学习和使用Java语言中最经常使用的参考资料之一.但是长期以来此文档只有英文版,对于中国地区的Java开发者 ...

  10. Event.target和Event.currentTarget的区别

    <style> * { margin:0; padding:0; list-style:none; } #ul { width:400px; height:250px; margin:0 ...