Django的路由层 路由控制之分发

 在app01应用里新建一个urls.py 文件 存放app01的url和视图函数对应关系

导入include函数

app01 urls.py

from django.contrib import admin
from django.urls import path, re_path

from app01 import views

urlpatterns = [

    # re_path(r'^articles/2003/$', views.special_case_2003),  # special_case_2003(request)
    # re_path(r'^articles/([0-9]{4})/$', views.year_archive),  # year_archive(request, 2009)
    # re_path(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),  # month_archive(request, 2009, 12)

    # month_archive(request, year=2009, month=12)
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<mouth>[0-9]{2})/$', views.month_archive),
    # re_path(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),

]

app01 views.py

from django.shortcuts import render, HttpResponse

# Create your views here.


def special_case_2003(request):
    
    return HttpResponse("special_case_2003")


def year_archive(request, year):

    return HttpResponse(year)


def month_archive(request, mouth, year):

    return HttpResponse(year+"-"+mouth)

全局urls.py

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


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

    # 分发
    re_path(r"app01/", include("app01.urls")),


]

不加app01 方式访问

全局urls.py

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


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

    # 分发
    re_path(r"^", include("app01.urls")),


]

原文地址:https://www.cnblogs.com/mingerlcm/p/14169301.html