Day04-路由层

本文详细介绍了Django框架中的路由配置,包括静态路由和动态路由的设置方法,如path和re_path的使用。动态路由通过参数传递实现视图间的交互,并对比了动态路由参数与GET传参的区别。此外,还讲解了路由的分发概念,即如何将主路由分发给子应用进行管理,以及其实现方式。
摘要由CSDN通过智能技术生成

1.静态路由

1.1静态路由匹配方式

在urls.py文件里的urlpatterns进行配置路由。

urlpatterns的属性

只要路径相同,不管是GET,POST,全归为一类请求

path和re_path
    path('index/',views.IndexView.as_view()),   #正常路由
    re_path(r'^[a-z]{5}/$',views.IndexView.as_view()),  #正则表达式,只要符合条件就可以获取页面
静态路由
from django.http import HttpResponse
def MyView(request):
    return HttpResponse('视图!')  
  
from django.urls import path,re_path
from myapp import views
urlpatterns = [
    path('',views.MyView),
    re_path(r"^",views.MyView),
]

2.动态路由

2.1 动态路由参数传递及动态路由转换器

#创建类视图
class IndexView2(View):
    def get(self,request,id):
        return HttpResponse(f"匹配到的id为{id}")
#配路由
from django.urls import path,re_path
from myapp import views
urlpatterns = [
    # 动态路由    指定类型
    path('index2/<int:id>/',views.IndexView2.as_view()),
]

正则分组

#创建类视图
class IndexView3(View):
    def get(self,request,x,y):
        return HttpResponse(f"匹配到的x为{x},y为{y}")
   #配置路由
from django.urls import path,re_path
from myapp import views
urlpatterns = [
#正则分组
    re_path(r'^(?P<x>\d+)/(?P<y>[a-z,A-Z]+)/$',views.IndexView3.as_view())
]
常用的两个数据类型

str:字符串匹配,是默认的
int:整型,匹配到的是数字也包括0

2.2 动态路由传参与GET传参的异同

动态路由传参:参数参与到路由的匹配当中,在路由里获取参数
GET传参:参数不参与路由的匹配,在视图中获取参数

3.路由的分发

3.1 路由分发的概念

主路由需要配置的路由太多,就把路由分发给子应用,让子应用自己管理自己的路由

3.2 路由分发的实现

在子应用的文件夹下新建一个urls.py文件夹,导入主路由的模块。
在主路由里导入include。

#主路由的配置
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('register/',views.RegisterView.as_view()),
    path('login/',views.LoginView.as_view()),
    path('index/',views.IndexView.as_view()),
]

总结

在视图层里定义了类视图之后,记得配置路由!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值