django.urls
函数用于 URLconf¶
path()
¶
-
path
(route, view, kwargs=None, name=None)¶
返回一个元素以包含在 urlpatterns
中。例如
from django.urls import include, path
urlpatterns = [
path("index/", views.index, name="main-view"),
path("bio/<username>/", views.bio, name="bio"),
path("articles/<slug:title>/", views.article, name="article-detail"),
path("articles/<slug:title>/<int:section>/", views.section, name="article-section"),
path("blog/", include("blog.urls")),
...,
]
route
参数应为包含 URL 模式的字符串或 gettext_lazy()
(请参阅 翻译 URL 模式)。该字符串可能包含尖括号(如上文的 <username>
)以捕获 URL 的一部分并将其作为关键字参数发送到视图。尖括号可能包括转换器规范(如 <int:section>
中的 int
部分),该规范限制匹配的字符,还可能更改传递给视图的变量的类型。例如,<int:section>
匹配一个十进制数字字符串,并将该值转换为 int
。有关更多详细信息,请参阅 Django 如何处理请求。
view
参数是视图函数或基于类视图的 as_view()
的结果。它还可以是 django.urls.include()
。
kwargs
参数允许您将其他参数传递给视图函数或方法。请参阅 将其他选项传递给视图函数 以获取示例。
请参阅 命名 URL 模式 以了解 name
参数为何有用。
re_path()
¶
-
re_path
(route, view, kwargs=None, name=None)¶
返回一个元素以包含在 urlpatterns
中。例如
from django.urls import include, re_path
urlpatterns = [
re_path(r"^index/$", views.index, name="index"),
re_path(r"^bio/(?P<username>\w+)/$", views.bio, name="bio"),
re_path(r"^blog/", include("blog.urls")),
...,
]
route
参数应为包含与 Python 的 re
模块兼容的正则表达式的字符串或 gettext_lazy()
(请参阅 翻译 URL 模式)。字符串通常使用原始字符串语法(r''
),以便它们可以包含诸如 \d
之类的序列,而无需使用另一个反斜杠转义反斜杠。进行匹配时,正则表达式中的捕获组将传递给视图——如果组已命名,则作为命名参数传递,否则作为位置参数传递。这些值作为字符串传递,没有任何类型转换。
当 route
以 $
结尾时,整个请求的 URL 与 path_info
匹配时,必须匹配正则表达式模式(re.fullmatch()
已使用)。
view
、kwargs
和 name
参数与 path()
相同。
在较早版本中,以 $
结尾的 route
不需要完全匹配。
include()
¶
-
include
(module, namespace=None)¶ -
include
(pattern_list) -
include
((pattern_list, app_namespace), namespace=None) 一个函数,它采用另一个 URLconf 模块的完整 Python 导入路径,该模块应“包含”在此处。还可以选择指定 应用程序命名空间 和 实例命名空间,其中将包含这些条目。
通常,应用程序命名空间应由包含的模块指定。如果设置了应用程序命名空间,则可以使用
namespace
参数设置不同的实例命名空间。include()
还接受一个参数,该参数是返回 URL 模式的可迭代对象或包含此类可迭代对象和应用程序命名空间名称的 2 元组。参数
请参阅 包括其他 URLconf 和 URL 命名空间和包含的 URLconf。
register_converter()
¶
-
register_converter
(converter, type_name)¶
用于注册转换器以在 path()
route
中使用的函数。
converter
参数是转换器类,type_name
是在路径模式中使用的转换器名称。有关示例,请参阅 注册自定义路径转换器。
django.conf.urls
函数用于 URLconf¶
static()
¶
-
静态。
静态
(前缀, 视图=django.views.static.serve, **关键字参数)¶
帮助函数,用于返回一个 URL 模式,以便在调试模式下提供文件
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
handler400
¶
-
handler400
¶
一个可调用对象,或一个字符串,表示如果 HTTP 客户端发送了一个导致错误条件和状态代码为 400 的响应的请求,则应调用的视图的完整 Python 导入路径。
默认情况下,这是 django.views.defaults.bad_request()
。如果你实现了一个自定义视图,请确保它接受 request
和 exception
参数,并返回一个 HttpResponseBadRequest
。
handler403
¶
-
handler403
¶
一个可调用对象,或一个字符串,表示如果用户没有访问资源所需的权限,则应调用的视图的完整 Python 导入路径。
默认情况下,这是 django.views.defaults.permission_denied()
。如果您实现自定义视图,请确保它接受 request
和 exception
参数,并返回 HttpResponseForbidden
。
handler404
¶
-
handler404
¶
一个可调用的函数,或一个字符串,表示如果没有任何 URL 模式匹配,则应调用的视图的完整 Python 导入路径。
默认情况下,这是 django.views.defaults.page_not_found()
。如果您实现自定义视图,请确保它接受 request
和 exception
参数,并返回 HttpResponseNotFound
。
handler500
¶
-
handler500
¶
一个可调用的函数,或一个字符串,表示在服务器错误的情况下应调用的视图的完整 Python 导入路径。当视图代码中出现运行时错误时,就会发生服务器错误。
默认情况下,这是 django.views.defaults.server_error()
。如果你实现自定义视图,请确保它接受 request
参数并返回 HttpResponseServerError
。