- 1.静态路由
- 1.1静态路由匹配方式
- urlpatterns的属性
- path和re_path
- 静态路由
- 2.动态路由
- 2.1 动态路由参数传递及动态路由转换器
- 常用的两个数据类型
- 2.2 动态路由传参与GET传参的异同
- 3.路由的分发
- 3.1 路由分发的概念
- 3.2 路由分发的实现
- 总结
在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
动态路由传参:参数参与到路由的匹配当中,在路由里获取参数
GET传参:参数不参与路由的匹配,在视图中获取参数
主路由需要配置的路由太多,就把路由分发给子应用,让子应用自己管理自己的路由
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条)