首页 > 其他分享 >Django框架3

Django框架3

时间:2022-12-12 21:35:13浏览次数:61  
标签:匹配 框架 views Django re test path 路由

今日内容概要

  • django请求生命周期流程图
  • django路由层
  • 反向解析

今日内容详细

django请求生命周期流程图

学习流程
	路由层、视图层、模板层、模型层、组件、BBS项目

django路由层

1.路由匹配
	django2.X及以上版本 path第一个参数写什么就匹配什么
	django1.X版本第一个参数是正则表达式
	无论什么版本的django都自带加斜杠后缀的功能 也可以取消
	配置文件中 APPEND_SLASH = False

2.转换器
	正常情况下很多网站都会有很多相似的网址 如果我们每一个都单独开设路由不合理
	django2.X及以上版本路由的动态匹配是通过转换器(五种)
		str:匹配除路径分隔符以外的任何非空字符串
		int:匹配0或者任意正整数
		slug:匹配任意一个由字母或数字组成的字符串
		uuid:匹配格式化后的UUID
		path:能够匹配完整的URL路径
		ps:还支持自定义转换器(自己写正则表达式匹配更加细化的内容)
	转换器就是将对应位置匹配到的数据转换成固定的数据类型
	path('index/<str:info>/', views.index_func)
	# 视图层中index_func实际收到的参数如下
	# index_func(实参request对象, info='转换器匹配到的类型转换后的内容')
	path('index/<str:info>/<int:id>/', views.index_func2)
	# index_func2(实参对象request, info='转换器匹配到的类型转换后的内容'info='转换器匹配到的类型转换后的内容', id='转换器匹配到的类型转换之后的内容')

3.正则匹配
	django2.X及以上的版本有re_path 第一个参数是正则表达式
	匹配的本质是只要第一个正则表达式能够从用户输入的路由中匹配到数据就算匹配成功 会立刻停止路由层其他的匹配直接执行对应的视图函数
	re_path('test', views.test)
	re_path('testadd', views.testadd)
	当用户输入ip:端口/testadd/那么只会匹配到test 并进入test视图函数
	re_path('test/', views.test)  # 能够解决 但是还是有问题
	当用户输入ip:端口/test/iehoasjd依然能够匹配到所以还得改进
	re_path('^test/$', views.test)  # 最后得出的写法 
	django1.X路由匹配使用的是url() 功能与django2.X及以上的re_path()一致

4.正则匹配的无名和有名分组
	无名分组
		re_path('^test/(\d{4})/', views.test)
		正常情况下给正则加括号并不会影响查找但是在django中
		会将括号内正则匹配到的内容当做位置参数传递给视图函数
	有名分组
		re_path('^test/(?P<year>\d{4})/', views.test)
		会将括号内正则匹配到的内容当做关键字参数传递给视图函数
	注意!!!上述的分组不能混合使用!!!

反向解析

通过一个名字可以反向解析出一个结果 该结果可以访问到某个对应的路由

基本使用
	1.路由匹配关系起别名
		path('login', views.login, name='login_view')
	2.反向解析语法
		html页面上的模板语法 {% url 'login_view' %}
		后端语法			reverse('login_view')

动态路由的反向解析
	path('func1/<str:info>', views.func1_func, name='func1_view'
	html页面上的模板语法	{% url 'func1_view' 'jason' %}
	后端语法				reverse('func1_view', args=('嘻嘻',))

标签:匹配,框架,views,Django,re,test,path,路由
From: https://www.cnblogs.com/lzjjjj/p/16977137.html

相关文章

  • Google开源依赖注入框架-Guice指南
    作者:软件质量保障之前发过一篇文章《​​浅谈依赖注入的实现​​》,介绍了依赖注入的实现原理。文中提到高效实现依赖注入的工具Guice,本文就介绍一下这款Google开源的依赖注......
  • django-路由层详解
    django-路由层详解可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模型类中定义双下str方法可以在数据对象被执行打印操作的时候......
  • 接口自动化框架脚手架-利用反射机制实现接口统一发起端
    作者:软件质量保障一、概述在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选......
  • 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获取在模......