django.urls 用于urlconfs的函数

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 参数应为字符串或 gettext_lazy() (见 转换URL模式 )包含URL模式的。字符串可以包含尖括号(如 <username> 上面)捕获部分URL并将其作为关键字参数发送到视图。角托架可包括转换器规格(如 int 部分 <int:section> )它限制匹配的字符,还可以更改传递给视图的变量的类型。例如, <int:section> 匹配十进制数字的字符串并将值转换为 int . 见 Django如何处理请求 了解更多详细信息。

这个 view 参数是视图函数或 as_view() 用于基于类的视图。它也可以是 django.urls.include() .

这个 kwargs 参数允许您将其他参数传递给视图函数或方法。见 传递额外的选项以查看函数 举个例子。

Naming URL patterns 为什么 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 参数应为字符串或 gettext_lazy() (见 转换URL模式 )它包含一个与python兼容的正则表达式 re 模块。字符串通常使用原始字符串语法 (r'' )这样它们就可以包含像 \d 不需要用另一个反斜杠来摆脱反斜杠。匹配后,从正则表达式中捕获的组将传递给视图——如果组已命名,则作为命名参数,否则作为位置参数。这些值作为字符串传递,不进行任何类型转换。

当一个 route 结尾为 $ 整个请求的URL,与 path_info 必须与正则表达式模式匹配 (re.fullmatch() 是使用的)。

这个 viewkwargsname 参数与for相同 path() .

include()

include(module, namespace=None)[源代码]
include(pattern_list)
include((pattern_list, app_namespace), namespace=None)

将完整的python导入路径带到另一个urlconf模块的函数,该模块应在此位置“包含”。可选地, application namespaceinstance namespace 也可以指定将包含在其中的条目。

通常,应用程序命名空间应由包含的模块指定。如果设置了应用程序命名空间,则 namespace 参数可用于设置其他实例命名空间。

include() 还接受返回URL模式的iterable或包含此类iterable和应用程序命名空间名称的2元组作为参数。

参数:
  • module -- URLCONF模块(或模块名称)

  • namespace (str) -- 包含的URL项的实例命名空间

  • pattern_list -- 可迭代的 path() 和/或 re_path() 实例。

  • app_namespace (str) -- 包含的URL项的应用程序命名空间

包括其他URLCONFURL命名空间和包含的urlconfs .

register_converter()

register_converter(converter, type_name)[源代码]

用于注册转换器的函数。 path() route S

这个 converter 参数是转换器类,并且 type_name 是要在路径模式中使用的转换器名称。见 注册自定义路径转换器 举个例子。

django.conf.urls 用于urlconfs的函数

static()

static.static(prefix, view=django.views.static.serve, **kwargs)

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

handler400

一个可调用的,或一个表示视图的完整python导入路径的字符串,如果HTTP客户端发送了一个导致错误条件和状态代码为400的响应的请求,则应调用该路径。

默认情况下,这是 django.views.defaults.bad_request() . 如果实现自定义视图,请确保它接受 requestexception 参数并返回 HttpResponseBadRequest .

handler403

handler403

一个可调用的,或一个表示视图的完整python导入路径的字符串,如果用户没有访问资源所需的权限,则应调用该路径。

默认情况下,这是 django.views.defaults.permission_denied() . 如果实现自定义视图,请确保它接受 requestexception 参数并返回 HttpResponseForbidden .

handler404

handler404

一个可调用的,或一个表示视图的完整python导入路径的字符串,如果没有匹配的URL模式,则应调用该路径。

默认情况下,这是 django.views.defaults.page_not_found() . 如果实现自定义视图,请确保它接受 requestexception 参数并返回 HttpResponseNotFound .

handler500

handler500

可调用的,或表示视图的完整python导入路径的字符串,在服务器出错时应调用该路径。当视图代码中有运行时错误时,会发生服务器错误。

默认情况下,这是 django.views.defaults.server_error() . 如果实现自定义视图,请确保它接受 request 参数并返回 HttpResponseServerError .