一、admin组件
二、url路径分析
三、单例模式(一个类只允许实例一个对象)
四、admin源码重要部分
五、设计URL
admin 单例模式set url访问
def add(request):
return HttpResponse("add")
def delete(request,id):
return HttpResponse("delete")
def change(request,id):
return HttpResponse("change")
def list_view(request):
return HttpResponse("list_view")
def get_urls2():
temp=[]
temp.append(url(r"^add/",add))
temp.append(url(r"^(\d+)/delete/",delete))
temp.append(url(r"^(\d+)/change/",change))
temp.append(url(r"^$",list_view))
return temp
def get_urls():
temp=[]
print("_registry",admin.site._registry)
for model,admin_class_obj in admin.site._registry.items():
print("model",model) # 所有的注册模型表
# < class 'app01.models.Book'>-----> "book" "app01"
# < class 'app01.models.Room'>-----> "room" "app01"
# print("===>",model._meta.model_name)
# print("===>",model._meta.app_label)
model_name=model._meta.model_name
app_label=model._meta.app_label
temp.append(url(r"%s/%s/"%(app_label,model_name),(get_urls2(),None,None)))
return temp
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
url(r'^login/', views.login),
url(r'^book/', views.book),
url(r"^yuan/",(get_urls(),None,None))
]