0
点赞
收藏
分享

微信扫一扫

Day4路由层

Star英 2022-04-25 阅读 38
django

路由层的大体概括

4.1.静态路由
4.1.1静态路由的匹配方式
4.2.动态路由
4.2.1 参数传递
4.2.2 路由转换
4.2.3 传参和get传参
4.3.路由分发(重点)
4.3.1概念
4.3.2Include的实现

4.1.1静态路由的匹配方式

urlpatterns属性:

概念:
是路由的全局变量,存放视图模版的映射
过程:
先定义from后路由匹配path或re_path

path方法
re_path方法

4.2动态路由

4.2.1-4.2.2动态路由的传参(转换器)

接收不同的值,来实现路由的动态变化

from django.urls import path,re_path
from myapp import views
法1 
  re_path('^[a-z]{5}/$', views.IndexView.as_view()),
    # 动态的路由传参参与路由匹配
    # get传参 不参与路由匹配
**法2  不知名类型**
    # 带类型的path 不知名类型默认是字符串类型
    path('index2/<int:id>/<str:name>', views.IndexView2.as_view()),
 **法3 正则**
    # 采用正则的动态路由
    re_path(r'^(?P<x>\d+)/(?P<y>[a-zA-Z]+)$', views.IndexView3.as_view()),
 法4 分组
    # 以小括号来分组
    # 当不指定位置的时候按照顺序来传参
    # re_path(r'^(\d+)/([a-zA-Z]+)$',views.IndexView3.as_view())
**对应法2的view:** 
class IndexView2(View):
    def get(self,request,id,name):
        return HttpResponse(f"匹配到的ID为{id}名字为{name}")
        
**对应法3的正则**
class IndexView3(View):
    def get(self,request,x,y):
        return HttpResponse(f"x的值为{x}y的值为{y}")

4.2.3动态路由和get路由传参的异同点

4.3路由的分发

4.3.1分发的概念

概念:
每个子项目都有自己所独立的urls.py路由
主路由需要导入include函数的子函数下的路由文件

4.3.2路由分发的实现

主路由

from django.contrib import admin
from django.urls import path,include
from myapp import urls


urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include(urls))
]

请添加图片描述
子路由:

from django.urls import path,re_path
from myapp import views
urlpatterns = [
    path('reg/', views.RegView.as_view()),
    path('login/', views.LoginView.as_view()),
    path('index/', views.IndexView.as_view()),
    ]

请添加图片描述

举报

相关推荐

-day4

Day4

day4 QT

Qt day4

QT DAY4

hadoop——day4()

vue3路由

ARM day4 作业

Day4:录入、if、switch

0 条评论