django命名空間 應用命名空間和例項命名空間

2021-10-04 19:05:35 字數 2414 閱讀 7409

python命名空間

1,應用命名空間

場景: 因為在多個應用裡面會有同名url 為了避免混淆 使用應用命名空間

2,例項命名空間

應用命名空間**:

#urls.py檔案內容:

from django.urls import path

from book import views

'book'

urlpatterns =

[ path(

'index/'

,views.index)

, path(

'login/'

,views.login,name =

'login'

)#name是路徑名稱

]#views.py內容:

' 首頁'

'登入頁面'

)

例項命名空間**:

#在專案(非應用內)的urls.py檔案中:

urlpatterns =

[ path(

'admin/'

, admin.site.urls)

, path(

'book1/'

,include(

'book.urls'

,namespace=

'book1'))

, path(

'book2/'

,include(

'book.urls'

,namespace=

'book2'))

,]#在book專案的views.py檔案中:

' 首頁'

)else

: current_namespace = request.resolver_match.namespace

return redirect(reverse(

"%s:login"

%current_namespace)

)#current_namespace是例項名,login是路徑名稱

' 登入頁面'

)

這樣測試環境登入book2/index 就不會出現book2 跳轉到book1的登入頁面

注意:也可以在include裡面指定應用命名空間(要指定例項命名空間必須指定應用命名空間)

**如下:在專案的urls.py中:

urlpatterns =

[ path(

'admin/'

, admin.site.urls)

, path(

'book1/'

,include(

('book.urls'

,'book'

),namespace=

'book1'))

, path(

'book2/'

,include(

('book.urls'

,'book'

),namespace=

'book2'))

,]

url命名與反轉,應用命名空間與例項命名空間

因為url是經常變化的。如果在 中寫死可能會經常改 給url取個名字,以後使用url的時候就使用他的名字進行反轉就可以了,就不需要寫死url了。from django.shortcuts import redirect,reverse redirect 跳轉函式 reverse 反轉函式 在path...

應用命名空間與例項命名空間

需求 正確的 應該這麼寫 cms中url.py檔案 cms中view檔案 return httpresponse 首頁 else reverse的寫法 url reverse cms login return redirect url def login request return httpres...

php 命名空間,PHP使用命名空間

介紹 命名空間中的類,函式或常量可以通過以下方式使用 在當前命名空間中使用類 指定相對於當前命名空間的命名空間 提供命名空間的全限定名稱 從當前命名空間 在此示例中,從test1.php載入了命名空間。沒有命名空間引用的函式或類名稱將訪問當前命名空間中的功能或類名稱 示例 test1.php nam...