无名分组(将加括号的正则表达式匹配到的内容当做位置参数自动传递给对应的视图函数)
url(r'^test/(\d+)/',views.test), # 匹配一个或多个数字 def test(request,xxx):
print(xxx)
return HttpResponse('test') 有名分组(将加括号的正则表达式匹配到的内容当做关键字参数自动传递给对应的视图函数)
url(r'^test/(?P<year>\d+)/',views.test), # 匹配一个或多个数字 def test(request,year):
print(year)
return HttpResponse('test') 注意:无名分组和有名分组不能混着用!!!
url(r'^test/(\d+)/(?P<year>\d+)/',views.test) 但是支持用一类型多个形式匹配
无名分组多个
url(r'^test/(\d+)/(\d+)/',views.test),
有名分组多个
url(r'^test/(?P<year>\d+)/(?P<xxx>\d+)/',views.test), 反向解析(根据名字动态获取到对应路径)
from django.shortcuts import reverse url(r'^index6668888/$',views.index,name='index')
# 可以给每一个路由与视图函数对应关系起一个名字
# 这个名字能够唯一标识出对应的路径
# 注意这个名字不能重复是唯一的 前端使用
{% url 'index' %}
{% url '你给路由与视图函数对应关系起的别名' %} 后端使用
reverse('index')
reverse('你给路由与视图函数对应关系起的别名') 无名分组反向解析
url(r'^test/(\d+)/',views.test,name='list') 后端使用
print(reverse('list',args=(10,)))
前端使用
{% url 'list' 10 %} user_list = models.User.objects.all() url(r'^edit/(\d+)/',views.edit,name='edit')
前端模板语法
{%for user_obj in user_list%}
<a href='edit/{{ user_obj.pk }}/'></a>
{% endfor %} 视图函数
from django.shortcuts import reverse
def edit(request,edit_id):
url = reverse('edit',args=(edit_id,)) 模板
{% url 'edit' edit_id %} 有名分组反向解析
后端使用
# 后端有名分组和无名分组都可以用这种形式
print(reverse('list',args=(10,)))
# 下面这个了解即可
print(reverse('list',kwargs={'year':10}))
前端使用
# 前端有名分组和无名分组都可以用这种形式
{% url 'list' 10 %}
# 下面这个了解即可
{% url 'list' year=10 %}
总结:针对有名分组与无名分组的反向解析统一采用一种格式即可
后端
reverse('list',args=(10,)) # 这里的数字通常都是数据的主键值
前端
{% url 'list' 10 %}
反向解析的本质:就是获取到一个能够访问名字所对应的视图函数

Django 的反向解析与有无名分组的更多相关文章

  1. Django【第2篇】:Django之反向解析

    Django框架之第二篇 一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中). view ...

  2. Django url反向解析与路由分发名称空间

    url反向解析 url.py from django.conf.urls import url from django.contrib import admin from app01 import v ...

  3. django之反向解析和命名空间

    背景:当我们页面中存放的请求路径与url文件中的url一致时,如果url改了是不是所有的请求路径都要跟着改?显然不现实,这里我们就要用到反向解析. 如下图所示,输入url后会跳转到登录页面,输入用户名 ...

  4. django 路由层(反向解析)03

    目录 ORM表关系建立 Django请求生命周期流程图 urls.py 路由层 无名分组 有名分组 反向解析 无名分组的反向解析 有名分组的反向解析 以编辑功能为例 路由分发 名称空间 伪静态 虚拟环 ...

  5. django初步--+urls解析

    1.静态文件配置: 你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的. 2.django如何给用户开设资源接口 ...

  6. Django正向解析和反向解析

    转载:https://blog.csdn.net/jeekmary/article/details/79673867 先创建一个视图界面 urls.py index.html index页面加载的效果 ...

  7. django反向解析和正向解析

    Django的正向解析和反向解析 先创建一个视图界面 urls.py index.html index页面加载的效果 正向解析 test/?result=1 所谓正向解析就是直接在这里写地址 向url ...

  8. $Django 路由层(有,无名分组、反向解析、总路由分发、名称空间、伪静态)

    1 简单配置 -第一个参数是正则表达式(如果要精准匹配:'^publish/$')  -第二个参数是视图函数(不要加括号)  -url(r'^admin/', admin.site.urls), 注: ...

  9. django之路由分组,反向解析,有名,无名分组

    路由层 无名分组 有名分组 反向解析 路由分发 名称空间 伪静态的概念 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'test',vi ...

随机推荐

  1. 03_ubuntu samba 安装配置

    03_ubuntu samba 安装配置 安装samba sudo apt install samba 修改samba配置文件 sudo vim /etc/samba/smb.conf [share] ...

  2. [python学习手册-笔记]001.python前言

    001.python前言 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...

  3. MySQL架构(面)

    和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离.这种架构可 ...

  4. 4. 树形DP

    337. 打家劫舍 III https://leetcode-cn.com/problems/house-robber-iii/ /** * Definition for a binary tree ...

  5. pandas.DataFarme内置的绘图功能参数说明

    可视化是数据探索性分析及结果表达的一种非常重要的形式,因此打算写一个python绘图系列,本文是第一篇,先说一下pandas.DataFrame.plot()绘图功能. pandas.DataFram ...

  6. 为什么你写的拦截器注入不了 Java bean?

    一.如何实现拦截器 在Spring Boot项目中,拦截器经常被用来做登陆验证,日志记录等操作.拦截器是Spring提供的,所以可以将拦截器注成bean,由IOC容器来管理.实现拦截器的方式很简单,主 ...

  7. c++11-17 模板核心知识(八)—— enable_if<>与SFINAE

    引子 使用enable_if<>禁用模板 enable_if<>实例 使用Concepts简化enable_if<> SFINAE (Substitution Fa ...

  8. jq判断input 复选框有没有选

    选中了返回true ,没选中返回false$("input[type='checkbox']").is(':checked'):

  9. mysql学习——数据库基本操作

    查看当前数据库 创建数据库 查看数据库定义 删除数据库

  10. 工作三年终于社招进字节跳动!字节跳动,阿里,腾讯Java岗面试经验汇总

    前言 我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿到了字节跳动的o ...