django.urls
用于urlconfs的函数¶path()
¶返回要包含在中的元素 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
¶的 route
参数应该是字符串或 gettext_lazy()
(见 转换URL模式 )包含URL模式。字符串可能包含尖括号(例如 <username>
捕获部分URL并将其作为关键字参数发送到视图。尖括号可以包括转换器规范(如 int
的一部分 <int:section>
)这会限制匹配的字符,并且还可能更改传递给视图的变量的类型。例如, <int:section>
匹配一串小数并将值转换为 int
.
处理请求时,Django从中的第一个模式开始 urlpatterns
并沿着列表向下移动,将请求的URL与每个模式进行比较,直到找到匹配的URL。看到 Django如何处理请求 了解更多详细信息。
模式与GET和Post参数或域名不匹配。例如,在请求中 https://www.example.com/myapp/
,URLinf将寻找 myapp/
.的请求中 https://www.example.com/myapp/?page=3
,URLinf也会寻找 myapp/
.
view
¶的 view
参数是视图函数或 as_view()
用于基于类别的视图。它也可以是一个 django.urls.include()
.
当Django找到匹配的模式时,它会使用 HttpRequest
对象作为第一个参数,并从路径中的任何“捕获”值作为关键字参数。
kwargs
¶这个 kwargs
参数允许您将其他参数传递给视图函数或方法。见 传递额外的选项以查看函数 举个例子。
name
¶验证您的URL可以让您从Django的其他地方明确引用它,尤其是在模板内。这个强大的功能允许您对项目的URL模式进行全局更改,同时仅触摸单个文件。
见 Naming URL patterns 为什么 name
参数是有用的。
re_path()
¶返回要包含在中的元素 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
参数应为字符串或 gettext_lazy()
(见 转换URL模式 )它包含一个与python兼容的正则表达式 re
模块。字符串通常使用原始字符串语法 (r''
)这样它们就可以包含像 \d
不需要用另一个反斜杠来摆脱反斜杠。匹配后,从正则表达式中捕获的组将传递给视图——如果组已命名,则作为命名参数,否则作为位置参数。这些值作为字符串传递,不进行任何类型转换。
当一个 route
结尾为 $
整个请求的URL,与 path_info
必须与正则表达式模式匹配 (re.fullmatch()
是使用的)。
这个 view
, kwargs
和 name
参数与for相同 path()
.
include()
¶将完整的python导入路径带到另一个urlconf模块的函数,该模块应在此位置“包含”。可选地, application namespace 和 instance namespace 也可以指定将包含在其中的条目。
通常,应用程序命名空间应由包含的模块指定。如果设置了应用程序命名空间,则 namespace
参数可用于设置其他实例命名空间。
include()
还接受返回URL模式的iterable或包含此类iterable和应用程序命名空间名称的2元组作为参数。
register_converter()
¶用于注册转换器的函数。 path()
route
S
这个 converter
参数是转换器类,并且 type_name
是要在路径模式中使用的转换器名称。见 注册自定义路径转换器 举个例子。
django.conf.urls
用于urlconfs的函数¶static()
¶helper函数返回用于在调试模式下提供文件的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
¶一个可调用的,或一个表示视图的完整python导入路径的字符串,如果HTTP客户端发送了一个导致错误条件和状态代码为400的响应的请求,则应调用该路径。
默认情况下,这是 django.views.defaults.bad_request()
. 如果实现自定义视图,请确保它接受 request
和 exception
参数并返回 HttpResponseBadRequest
.
handler403
¶一个可调用的,或一个表示视图的完整python导入路径的字符串,如果用户没有访问资源所需的权限,则应调用该路径。
默认情况下,这是 django.views.defaults.permission_denied()
. 如果实现自定义视图,请确保它接受 request
和 exception
参数并返回 HttpResponseForbidden
.
handler404
¶一个可调用的,或一个表示视图的完整python导入路径的字符串,如果没有匹配的URL模式,则应调用该路径。
默认情况下,这是 django.views.defaults.page_not_found()
. 如果实现自定义视图,请确保它接受 request
和 exception
参数并返回 HttpResponseNotFound
.
handler500
¶可调用的,或表示视图的完整python导入路径的字符串,在服务器出错时应调用该路径。当视图代码中有运行时错误时,会发生服务器错误。
系统默认 django.views.defaults.server_error()
.如果实现自定义视图,请确保它接受 request
参数并返回 HttpResponseServerError
。
5月 28, 2025