urls.py
from django.contrib import admin
from django.urls import path
from xadmin.service.xadmin import site
urlpatterns = [
path('admin/', admin.site.urls),
path('xadmin/', site.urls), # 並不是在請求時才執行urls函式,而是專案啟動後就已經執行 @property
# 完成二次路由分發,實現具體方法,
class modelxadmin():
def __init__(self,model,site):
self.model = model # 哪個模型類
self.site = site # xadminsite 例項物件
# 顯示資料
def list_view(self,request):
print(self.model)
data = self.model.objects.all()
data_list =
for i in data:
return render(request,'list_view.html',)
# 增加資料
def add_view(self,request):
return render(request,'add_view.html')
# 刪除資料
def delete_view(self,request,id):
return render(request,'delete_view.html')
# 修改資料
def edit_view(self,request,id):
return render(request,'edit_view.html')
# 分發路由路由
def get_urls2(self):
temp =
return temp
# 方便 xadminsite 類呼叫
@property
def urls2(self):
return self.get_urls2(),none,none
class xadminsite():
# 將 資料模型類和 例項物件封裝成字典
def __init__(self,name='xadmin'):
self._registry = {}
# 路由第一次分發
def get_urls(self):
temp =
print(self._registry)
for model , admin_class_obj in self._registry.items():
model_name = model._meta.model_name # 模型類名
return temp
# 方便在 django開啟時 就執行該函式
@property
def urls(self):
return self.get_urls(),none,none
# 將模型類新增到 類屬性中
def registry(self,model,admin_class=none,**options):
if not admin_class:
admin_class = modelxadmin
self._registry[model] = admin_class(model,self)
site = xadminsite()
路由重分發
路由重發布 可以結合重發布實驗 路由重發布 路由重發布是指連線到不同路由選擇域的邊界路由器在不同路由選擇域 自主系統 之間交換和通告路由選擇資訊的能力。路由重發布規則 預設種子度量值 將路由重分發到該協議中 預設種子度量值 rip無窮大 ospf bgp路由為1,其他路由為20 is is 0bgp...
Django 路由分發
django 路由分發 當乙個url請求過來之後 1 先到專案主目錄下的urls內。一級路由 主目錄urls內引入include from django.conf.urls import url,include urlpatterns url r cmdb include url r monitor...
Django路由分發
1.路由匹配,urls.py中 url r testadd views.testadd 匹配規則 從上到下只要正規表示式匹配成功,就不會往下匹配了 get請求的傳參方式?無名分組 url r test d views.test 會把括號中匹配的數字當成位置引數傳給檢視函式 有名分組 url r te...