首页 > 其他分享 >django路由层

django路由层

时间:2022-12-12 21:44:50浏览次数:53  
标签:匹配 views django test path 路由 view

django请求生命周期流程图

image

django路由层

1.路由匹配
    django1.X版本路由的第一个参数是正则表达式
    django2.X及以上版本的则是path写什么就匹配什么
    # 无论什么版本的django都自带加斜杠后缀的功能,我们可以把这个功能手动取消
    取消自动加斜杠后缀功能
        配置文件中加 APPEND_SLASH = False  # 默认为True,且不在配置文件中显示
        
2.转换器
    将对应位置匹配到的数据转换成固定数据类型
    正常情况下一个网站会有很多相似的网址,如果每个都开一个路由的话太累了,所以就有了转换器
    django2.X及以上版本路由的动态匹配有转换器
    五种转换器
        str:匹配除路径分隔符外所有的非空字符串
        int:匹配0或者任意正整数
        slug:匹配任意一个由字母或数字组成的字符串
        uuid:匹配格式化之后的UUID
        path:匹配完整的URL路径
    # 这五种转换器中常用的就是str和int,除了这五种转化器我们还可以自定义转换器(就是自己写一个正则表达式)
    eg:
         path('index/<str:info>/', views.index_func),
         # index_func(实参request对象,info='经过转换器转换过的匹配内容')  info就相当于关键字传参
        
3.正则匹配
    django2.X级以上版本有re_path,第一个参数是正则表达式
    正则匹配的本质是只要第一个正则表达式能够从用户输入的路由中匹配到对应的数据就匹配成功(无论用户输入了什么),
    会立刻停止匹配直接执行对应的视图函数
    eg:
        re_path('^test/$', views.test) # 只匹配路由为test/的路由
        
    # django1.X路由匹配使用的是url(),功能与django2.X及以上的re_path()一致
    
4.正则匹配的无名有名分组
    无名分组
        re_path('^test/(\d{4})/', views.test)  # 将括号内正则匹配到的内容当做位置参数传递给视图函数
    有名分组
        re_path('^test/(?P<year>\d{4})/', views.test)  # 对括号内的正则表达式起一个别名
        # 将括号内的正则匹配到的内容与别名组成关键字参数传递给视图函数,year='正则匹配到的内容'
    注意: 无名分组与有名分组不能混合使用

反向解析

通过一个名字可以反向解析出一个结果,该结果可以访问到某个对应的路由
基本使用
    1.路由匹配关系起别名
        path('login_01', views.login, name='login_view')
    2.反向解析语法
        html页面模板语法  {% url 'login_view' %}
        后端语法          reverse('login_view')
        
动态路由的反向解析
	path('func1/<str:others>/', views.func1_func, name='func1_view')
 	html页面上模板语法 {% url 'func1_view' 'jason' %}  # 需要一个参数与接收到的路由的第二个参数对应
 	后端语法		  reverse('func1_view', args=('嘿嘿嘿',)) 

标签:匹配,views,django,test,path,路由,view
From: https://www.cnblogs.com/zyg111/p/16977164.html

相关文章

  • django 可视化界面
    可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看'''for......
  • Django框架3
    今日内容概要django请求生命周期流程图django路由层反向解析今日内容详细django请求生命周期流程图学习流程 路由层、视图层、模板层、模型层、组件、BBS项目d......
  • django-路由层详解
    django-路由层详解可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模型类中定义双下str方法可以在数据对象被执行打印操作的时候......
  • Django框架:路由层
    目录Django中的路由层一、可视化界面之增删改查1.数据展示2.数据的添加功能3.数据的编辑功能4.数据的删除功能二、Django请求生命周期流程图1.web服务网关接口2.整个Django......
  • 可视化界面之数据增删改查、django请求生命周期流程图、django路由层、反向解析
    可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看'''for......
  • Django3
    django请求生命周期流程图1.Django请求的生命周期的含义Django请求的生命周期是指:当用户在浏览器上输入URL到用户看到网页的这个时间段内,Django后台所发生的事情。2.Dj......
  • django路由层知识
    今日内容概要作业讲解(数据增删改查)django请求生命周期流程图django路由层python虚拟环境(跳过)反向解析路由分发名称空间今日内容详细可视化界面之数据增......
  • django路由层
    上周内容回顾静态文件及相关配置1.静态文件的概念 简单的理解为html页面需要使用到的不经常变化的资源 css文件、js文件、img文件、第三方文件2.静态文件配......
  • Django路由层的匹配
    前日内容回顾静态文件的配置页面中不需要经常修改的内容(样式、脚本、图片等)采用静态文件的方式保存,需要在Django的配置文件中注册相应的文件地址。request对象方......
  • 可视化界面之数据增删改查、django请求生命周期流程图、django路由层、反向解析、
    目录可视化界面之数据增删改查django请求生命周期流程图django路由层反向解析可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模......