Day4路由层

路由层的大体概括

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方法

from django.urls import path # 定义path方法
from myapp import views
urlpatterns = [
path(‘myview/’,views.MyView),
# myview 一般为小写
]

re_path方法

from django.urls import path,re_path
from myapp import views
urlpatterns = [
re_path(r’^(?P\d+)/(?P[a-zA-Z]+)$', views.IndexView3.as_view()),
]

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路由传参的异同点

动态路由*:动态路由传参参与路由匹配
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()),
    ]

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值