首页 > 其他分享 >django生命周期和路由层

django生命周期和路由层

时间:2023-04-23 17:33:16浏览次数:38  
标签:生命周期 匹配 views django path login 路由 view

django生命周期

https://www.yuque.com/liyangqit/cbndkh/evyps8
image
image

django路由层

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


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


3.正则匹配
	django2.X及以上版本有re_path 第一个参数是正则
 	匹配的本质是只要第一个正则表达式能够从用户输入的路由中匹配到数据就算匹配成功会立刻停止路由层其他的匹配直接执行对应的视图函数
 	re_path('^test/$', views.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)
		'''?P<value>的意思就是命名一个名字为value的组,匹配规则符合后面的/d+'''
    	会将括号内正则匹配到的内容当做关键字参数传递给视图函数
 	注意上述的分组不能混合使用!!!

反向解析(模板语法)

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

基本使用
	1.路由匹配关系起别名
    	path('login001/', views.login, name='login_view')
	2.反向解析语法
    	html页面上模板语法	{% url 'login_view' %}
        
    	后端语法 
        之前是return redirect('/路由名/')
        现在是reverse('login_view')得到路由名
        通过这种方式达到解耦合的目的
        
动态路由的反向解析
	path('func1/<str:others>/', views.func1_func, name='func1_view')
 	html页面上模板语法 {% url 'login_view' 'jason' %} #/login/jason/
	#路由是动态的,不传值的话不知道该怎么找
 	后端语法		  reverse('login_view', args=('egon',))#/login/egon/
	通过args来传参数

标签:生命周期,匹配,views,django,path,login,路由,view
From: https://www.cnblogs.com/whxx/p/17347190.html

相关文章

  • mysql 主从,django操作读写分离
    目录mysql主从搭建步骤1.准备两台机器2.创建文件夹,文件(目录映射)3编写mysql配置文件(主,从)重要启动mysql容器,并做端口和目录映射连接主库修改新建用户连接从库修改配置django操作多数据库方法1.配置文件2.手动读写分离3.自动读写分离4.配置文件添加新点mysql主从目的: 主要做读......
  • Angular系列 -> 生命周期钩子
    简介:Angular指令的生命周期,是用来记录指令从创建、应用及销毁的过程。Angular提供了一系列与指令生命周期相关的钩子,便于我们监控指令生命周期的变化,并执行相关的操作。生命周期介绍: ngOnChanges:当数据绑定输入属性的值发生变化时;@input属性(输入属性)发生变化时;ngO......
  • Django全栈进阶之路3 Django4项目APP
    Django4项目APPdjango-adminstartappapp01或pythonmanage.pystartappapp01 #app01是app名称    PyCharm的样子:  ......
  • 1 python操作哨兵 、2 python操作集群、3 缓存优化、4 mysql 主从 、5 django使用多数
    目录1python操作哨兵2python操作集群3缓存优化3.1redis缓存更新策略3.2缓存击穿,雪崩,穿透4mysql主从5django使用多数据库做读写分离1python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不......
  • Django静态文件,链接数据库,DRM操作
    目录配置文件的介绍静态文件的配置request对象form表单Django链接数据库(MySQL)(掌握)Django的ORM操作ORM基本语句数据的增查模板变量的分配配置文件的介绍SECRET_KEY='0yge9t5m9&%=of**qk2m9z^7-gp2db)g!*5dzb136ys0#)*%*a'#盐DEBUG=True#调试模式,等项目上线的时候......
  • mysql主从-day1——mysql主从搭建、django中使用多数据库做读写分离
    目录一、mysql主从5django使用多数据库做读写分离一、mysql主从#之前做过redis的主从,很简单#mysql稍微复杂一些,搭建mysql主从的目的是? -读写分离-单个实例并发量低,提高并发量-只在主库写,读数据都去从库#mysql主从原理步骤一:主库db的更新事件......
  • Django配置mysql数据库
    今天跟大家分享Django配置python的mysql数据库链接工具pymysql。系统环境:windows11x64,pycharm专业2022.3版本,python11,Django4.0。第一步:pip安装pymysql库,在当前django的python环境中用pip install pymysql进行安装。如下图: 我已经安装好,所以不用重新安装,这里需要注意的是有......
  • Django全栈进阶之路1 Django4下载与安装
    python下载安装:下载网址:https://www.python.org/downloads/ 安装方法:https://www.cnblogs.com/beichengshiqiao/p/16153586.html新版的python一般无需配置环境,在安装的时候勾选带有AddPython3.10toPATH的选项即可,如果需要手动配置的,参考:https://www.cnblogs.com/beicheng......
  • 基于django+ansible+webssh运维自动化管理系统
    基于django+ansible+webssh运维自动化管理系统 前言最初开发这个基于Djangoansible运维自动化管理系统的想法其实从大学时候就已经有了,但是苦于技术原因和没有线上环境原因一直没有开发,现在有了这个技术和环境之后开始着手开发了这个项目,项目难点在于你要理解如何设计数据库,......
  • 静态路由和动态路由
    静态路由实验背景静态路由(英语:Staticrouting),一种路由的方式,路由项(routingentry)由手动配置,而非动态决定。与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。静态路由的优点:运行稳定,节省设备链......