首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >re_path()

re_path()

作者头像
lesM10
发布2019-08-26 17:06:24
8800
发布2019-08-26 17:06:24
举报

想要使用该函数,请导入如下模块:

from django.urls import include, re_path

函数参数如下:

re_path(route, view, kwargs=None, name=None)
  • The route argument should be a string or gettext_lazy() (see Translating URL patterns) that contains a regular expression compatible with Python’s re module. Strings typically use raw string syntax (r'') so that they can contain sequences like \d without the need to escape the backslash with another backslash. When a match is made, captured groups from the regular expression are passed to the view – as named arguments if the groups are named, and as positional arguments otherwise. The values are passed as strings, without any type conversion.
  • The view argument is a view function or the result of as_view() for class-based views. It can also be an django.urls.include().
  • The kwargs argument allows you to pass additional arguments to the view function or method. See Passing extra options to view functions for an example.
  • See Naming URL patterns for why the name argument is useful.
Naming URL patterns(name argument in re_path)

In order to perform URL reversing, you’ll need to use named URL patterns. The string used for the URL name can contain any characters you like. You are not restricted to valid Python names.

When naming URL patterns, choose names that are unlikely to clash with other applications’ choice of names. If you call your URL pattern comment and another application does the same thing, the URL that reverse() finds depends on whichever pattern is last in your project’s urlpatterns list.

Putting a prefix on your URL names, perhaps derived from the application name (such as myapp-comment instead of comment), decreases the chance of collision.

You can deliberately choose the same URL name as another application if you want to override a view. For example, a common use case is to override the LoginView. Parts of Django and most third-party apps assume that this view has a URL pattern with the name login. If you have a custom login view and give its URL the name login, reverse() will find your custom view as long as it’s in urlpatterns after django.contrib.auth.urls is included (if that’s included at all).

You may also use the same name for multiple URL patterns if they differ in their arguments. In addition to the URL name, reverse() matches the number of arguments and the names of the keyword arguments.(in addition to: 除了...)

include()

include(module, namespace=None)[source]

include(pattern_list)

include((pattern_list, app_namespace), namespace=None)

include function that takes a full Python import path to another URLconf module that should be “included” in this place.

Optionally, the application namespace and instance namespace where the entries will be included into can also be specified.

Usually, the application namespace should be specified by the included module. If an application namespace is set, the namespace argument can be used to set a different instance namespace.

include() also accepts as an argument either an iterable that returns URL patterns or a 2-tuple containing such iterable plus the names of the application namespaces.

Parameters:

  • module – URLconf module (or module name)
  • namespace (str) – Instance namespace for the URL entries being included
  • pattern_list – Iterable of path() and/or re_path() instances.
  • app_namespace (str) – Application namespace for the URL entries being included

See Including other URLconfs and URL namespaces and included URLconfs.

初学于此,鉴于 url匹配规则有点多,就先到这里吧。

转载请注明出处

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Naming URL patterns(name argument in re_path)
  • include()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档