Day04-路由层

Day04-路由层,第1张

文章目录
  • 1.静态路由
    • 1.1静态路由匹配方式
        • urlpatterns的属性
        • path和re_path
        • 静态路由
  • 2.动态路由
    • 2.1 动态路由参数传递及动态路由转换器
        • 常用的两个数据类型
    • 2.2 动态路由传参与GET传参的异同
  • 3.路由的分发
    • 3.1 路由分发的概念
    • 3.2 路由分发的实现
  • 总结

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//',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\d+)/(?P[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()),
]
总结

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/733858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存