Den*_*nov 7 django django-urls
当include()从 Django 应用程序到项目的 urlconf 时urls.py,某种应用程序的名称(或命名空间)应指定为:
app_namespace在include((pattern_list, app_namespace), namespace=None)主urls.py或者
app_name应用程序中的变量urls.py。因为,我猜是 Django 2,第二种方法是首选方法,尽管我从 Django 3 文档中复制粘贴了第一个函数签名。但这不是重点。
我目前对namespace参数的理解include()是它是我在使用reverse().
app_namein app'surls.py或app_namespacein main的目的是什么urls.py?
这些是完全一样的吗?
Django 如何使用它?
我在这里找到的现有问题(和答案)解释了我应该如何指定它而不是为什么。
在这个答案中,我采用了DRF 包及其URL 模式。如果您想尝试此答案中提到的任何片段,您必须安装 ( pip install djangorestframework) 并添加rest_framework到INSTALLED_APPS列表中。
该应用程序命名空间可以通过两种方式来设定,[参考:Django的DOC ]
在urls.py使用app_name变量。
可以看到 DRF 已经设置了app_namein urls.py。只有当我们包含带有模块引用的模式时,Django 才会使用它app_name 作为应用程序命名空间。
那是, include(module, namespace=None)
例子:
urlpatterns = [
path('drf-auth/bare/', include('rest_framework.urls')),
]Run Code Online (Sandbox Code Playgroud)
在include((pattern_list, app_namespace), namespace=None)函数中使用app_namespace参数。
在此方法中,您可以根据需要为应用程序设置附加项app_namespace。
最重要的是,我们传递的是pattern_list而不是模块
例子:
from rest_framework.urls import urlpatterns as drf_urlpatterns
urlpatterns = [
path('drf-auth/foo/', include((drf_urlpatterns, 'foo-app-namespace'))),
]
Run Code Online (Sandbox Code Playgroud)
from django.urls import path, include, reverse
from rest_framework.urls import urlpatterns as drf_urlpatterns
urlpatterns = [
path('drf-auth/bare/', include('rest_framework.urls')),
path('drf-auth/foo/', include((drf_urlpatterns, 'foo-app-namespace'))),
path('drf-auth/bar/', include((drf_urlpatterns, 'bar-app-namespace'))),
]
print(reverse('rest_framework:login'))
print(reverse('foo-app-namespace:login'))
print(reverse('bar-app-namespace:login'))
#results
/drf-auth/bare/login/
/drf-auth/foo/login/
/drf-auth/bar/login/
Run Code Online (Sandbox Code Playgroud)
app_namein app'surls.py或app_namespacein main的目的是什么urls.py?
两者都用于设置应用程序命名空间。该app_name可被用作一个缺省应用的名称空间,如果在所定义的urls.py。
- 这些是完全一样的吗?
不。
- Django 如何使用它?
该应用命名空间和实例命名空间用于检索的URL路径。在 Django 中,无论何时reverse(...)执行函数,Django 都会首先查找应用程序命名空间,而不是其他任何命名空间。您可以在此处阅读有关 Django 如何解析 URL 的更多信息,Reversing namespaced URLs
| 归档时间: |
|
| 查看次数: |
3255 次 |
| 最近记录: |