一、分发
位置:urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('wu/', ([
path('test01/', ([
path('add/', view.add)
]),None, None),
path('test02/', views.test02),
path('test03/', views.test03),
], None, None)),
注意:path 后面 不加视图 加tuple
格式:path('', ([], None, None))
二、分发优化
位置:urls.py
def list_view(request):
print(request.path)
return HttpResponse("list_view")
def add_view(request):
print(request.path)
return HttpResponse("add_view")
def change_view(request, id):
print(request.path)
return HttpResponse("change_view")
def delete_view(request, id):
print(request.path)
return HttpResponse("delete_view")
# 产生增、删、该、查的url
def get_urls2():
t = []
t.append(path('', list_view))
t.append(path('add/', add_view))
t.append(path('<id>/change/', change_view))
t.append(path('<id>/delete/', delete_view))
return t
# 产生表url
def get_urls():
temp = []
# 具体情况看源码
# admin.site._registry.items() 以字典的形式存放模型对象和样式对象
# models._meta.app_label 获取 模型对象的app名称
# models._meta.model_name 获取 模型对象的表名称
for models, admin_class_obj in admin.site._registry.items():
app_name = models._meta.app_label
models_name = models._meta.model_name
temp.append(path('%s/%s/' % (app_name, models_name), (get_urls2(), None, None))),
return temp
urlpatterns = [
path('admin/', admin.site.urls),
# get_urls [ ]
path('wu/', (get_urls(), None, None)),
]