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

django路由层

时间:2022-12-12 20:55:57浏览次数:33  
标签:匹配 views request django path 数据 路由

上周内容回顾

  • 静态文件及相关配置

    1.静态文件的概念
    	简单的理解为html页面需要使用到的不经常变化的资源
        	css文件、js文件、img文件、第三方文件
    
    2.静态文件配置
    	STATIC_URLS = '/static/'
    	STATICFILES_DIRS = [
            os.path.join(BASE_DIR,'static')
        ]
    
    3.接口前缀动态匹配
    	{% load static %}
    	{% static 'bbb/ccc/d.txt' %}
    
  • form表单相关注意事项

    form标签重要属性
    	action	控制提交的地址
        	三种编写
    	method	控制提交的方法
    		两种方法 默认是get
    
    网络请求方式
    	get
        	朝服务端请求数据
    			并且可以携带一些额外的不敏感的条件(有大小限制)
                URL?xxx=yyy&ooo=ppp
         post       
             朝服务端提交数据
            	也可以携带数据并且数据是放在请求体里面的(大小没有限制)
            	请求体
    
  • request对象方法

    request.method
    	获取当前请求的请求方法 结果是纯大写的字符串 GET、POST
    
    request.GET
    	获取URL问号后面携带的数据 结果是一个QueryDict拥有字典的特性
    		request.GET.get()		值列表最后一个数据值
    		request.GETgetlist()	整个值列表
    request.POST
    	获取post请求请求体里面的数据 结果也是一个QueryDict拥有字典的特性
    		request.POST.get()		值列表最后一个数据
    		request.POST.getlist()	整个值列表
    

今日内容概要

  • 作业讲解(数据增删改查)
  • django请求生命周期流程图
  • django路由层
  • 反向解析

今日内容详细

可视化界面之数据增删改查

针对数据对象主键字段的获取可以使用更加方便的 obj.pk获取
在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看

'''
form表单中能够触发调调剂动作的按钮只有两个
	<input type='submit'/>
	<button></button>
'''

1.数据展示功能
	开设接口、获取数据、传递页面、展示数据
2.数据添加功能
	开设接口、获取数据、发送数据、校验数据、录入数据、重定向
3.数据编辑功能
	开设接口、后端如何区分所要编辑的数据(问号携带参数)、后端获取用户数据、前端展示默认数据、获取用户并完成更新
4.数据删除功能
	开设接口、问号携带参数、删除二次确认

django请求生命周期流程图

这个图很重要 无论是学习阶段还是复习阶段

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

image

django路由层

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

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)
		会将括号内正则匹配到的内容当做关键字参数传递给视图函数
	注意上述分组不能混合使用!!!

反向解析

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

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

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

标签:匹配,views,request,django,path,数据,路由
From: https://www.cnblogs.com/DragonY/p/16977066.html

相关文章

  • Django路由层的匹配
    前日内容回顾静态文件的配置页面中不需要经常修改的内容(样式、脚本、图片等)采用静态文件的方式保存,需要在Django的配置文件中注册相应的文件地址。request对象方......
  • 可视化界面之数据增删改查、django请求生命周期流程图、django路由层、反向解析、
    目录可视化界面之数据增删改查django请求生命周期流程图django路由层反向解析可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模......
  • 可视化界面之数据增删改查、django请求生命周期流程图、django路由层、反向解析
    可视化界面之数据增删改查针对数据对象主键字段的获取可以使用更加方便的obj.pk获取在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看'''for......
  • django 03 django路由层
    django请求生命周期流程图  django路由层#1.路由匹配django1.x第一个参数是正则表达式django2.x+path第一个参数写什么就匹配什么......
  • ORM数据增删改查 django请求生命周期 django路由层 反向解析
    目录可视化界面之数据增删改查补充1.建表2.数据展示功能3.数据添加功能4.数据编辑功能5.数据删除功能django请求生命周期流程图crsfwsgirel与uwsginginxdjango路由层1.路......
  • django之路由层
    django请求生命周期流程图特别注意:WSGI是协议,而wsgiref与uwsgi是基于WSGI协议实现的功能django路由层1.路由匹配 django2.x及以上 path第一个参数写什么就匹配什么......
  • django-rest framework
    目录(1)Web应用模式及API接口(2)Restful规范(3)drf安装和简单使用(4)源码分析(5)序列化器-Serializer(6)局部和全局响应配置(7)视图(8)路由-Routers(9)认证-Authentication(10)权......
  • BGP路由协议
    IGP和EGP路由协议通常分为内部网关协议(IGP:InteriorGatewayProtocol)和外部网关协议(EGP:ExteriorGatewayProtocol)两大类。一般来讲,IGP用于自治系统AS(AutonomousSys......
  • django之路由层和反向解析
    目录可视化界面之数据增删改查项目初始化步骤访问用户数据的接口数据添加django请求生命周期流程图django路由层反向解析可视化界面之数据增删改查项目初始化步骤1.创建......
  • 基于角色的权限控制(django内置的auth体系)
    #RBAC(Role-BasedAccessControl:基于角色的访问控制)#django的auth就是内置了一套RBAC的权限系统#django中 #后台权限控制(公司内部系统,crm客户关系管理,erp,协同平台)......