Reverse django что это

Documentation

django.urls utility functions¶

reverse() ¶

If you need to use something similar to the url template tag in your code, Django provides the following function:

reverse (viewname, urlconf=None, args=None, kwargs=None, current_app=None

viewname can be a URL pattern name or the callable view object. For example, given the following url :

you can use any of the following to reverse the URL:

args and kwargs cannot be passed to reverse() at the same time.

If no match can be made, reverse() raises a NoReverseMatch exception.

The reverse() function can reverse a large variety of regular expression patterns for URLs, but not every possible one. The main restriction at the moment is that the pattern cannot contain alternative choices using the vertical bar ( «|» ) character. You can quite happily use such patterns for matching against incoming URLs and sending them off to views, but you cannot reverse such patterns.

The urlconf argument is the URLconf module containing the URL patterns to use for reversing. By default, the root URLconf for the current thread is used.

Applying further encoding (such as urllib.parse.quote() ) to the output of reverse() may produce undesirable results.

reverse_lazy() ¶

A lazily evaluated version of reverse().

reverse_lazy (viewname, urlconf=None, args=None, kwargs=None, current_app=None

It is useful for when you need to use a URL reversal before your project’s URLConf is loaded. Some common cases where this function is necessary are:

resolve() ¶

The resolve() function can be used for resolving URL paths to the corresponding view functions. It has the following signature:

class ResolverMatch ¶ func ¶

The view function that would be used to serve the URL

The arguments that would be passed to the view function, as parsed from the URL.

The keyword arguments that would be passed to the view function, as parsed from the URL.

The name of the URL pattern that matches the URL.

The route of the matching URL pattern.

The list of URL patterns tried before the URL either matched one or exhausted available patterns.

The application namespace for the URL pattern that matches the URL.

The instance namespace for the URL pattern that matches the URL.

The name of the view that matches the URL, including the namespace if there is one.

A ResolverMatch object can then be interrogated to provide information about the URL pattern that matches a URL:

A ResolverMatch object can also be assigned to a triple:

One possible use of resolve() would be to test whether a view would raise a Http404 error before redirecting to it:

get_script_prefix() ¶

Additional Information

Support Django!

Reverse django что это. fundraising heart.cd6bb84ffd33. Reverse django что это фото. Reverse django что это-fundraising heart.cd6bb84ffd33. картинка Reverse django что это. картинка fundraising heart.cd6bb84ffd33

Contents

Browse

You are here:

Getting help

Download:

Offline (Django 3.2): HTML | PDF | ePub
Provided by Read the Docs.

Источник

документация Django 3.0

reverse() ¶

viewname can be a URL pattern name or the callable view object. For example, given the following url :

вы можете получить URL одним из следующих способов:

Вы можете использовать kwargs (словарь) вместо args (отдельных аргументов). Например:

args и kwargs не могут быть переданы функции reverse() вместе, они используются по отдельности.

If no match can be made, reverse() raises a NoReverseMatch exception.

The urlconf argument is the URLconf module containing the URL patterns to use for reversing. By default, the root URLconf for the current thread is used.

Applying further encoding (such as urllib.parse.quote() ) to the output of reverse() may produce undesirable results.

reverse_lazy() ¶

lazy стоит расценивать как «ленивую» версию reverse().

Эта функция может быть полезна в случае, если вам нужно вернуть URL-адрес прежде, чем ваши настройки URLConf будут загружены. Перечислим несколько случаев, когда эта функция бывает необходима:

resolve() ¶

Функция resolve() может быть использована для получения URL-адреса из соответствующего представления. Она имеет следующий синтаксис:

class ResolverMatch ¶ func ¶

Функция представления, которая будет использована для передачи URL.

Аргументы, которые будут переданы в функцию представления, as parsed from the URL.

именованные аргументы, которые будут переданы в функцию представления, as parsed from the URL.

Название URL-шаблона для сопоставления URL-адресов.

The route of the matching URL pattern.

Название приложения из пространства имён для сопоставления URL-адресов.

Название выбранного пространства имён для сопоставления URL-адресов.

Название представления, которое обрабатывает URL, включая пространства имен, если таковы используются.

С помощью объекта ResolverMatch можно впоследствии запросить информацию о соответствии между URL-адресом и используемом имени представления (т.е. какому URL-адресу какой шаблон принадлежит):

Также объекту ResolverMatch можно передать три параметра:

One possible use of resolve() would be to test whether a view would raise a Http404 error before redirecting to it:

get_script_prefix() ¶

Источник

Вспомогательные функции django.urls ¶

reverse() ¶

viewname может быть URL pattern name или вызываемым объектом представления. Например, учитывая следующее url :

вы можете использовать любой из следующих способов, чтобы изменить URL:

args и kwargs не могут быть переданы в reverse() одновременно.

Функция reverse() может отменить большое количество шаблонов регулярных выражений для URL, но не все возможные. Основным ограничением на данный момент является то, что шаблон не может содержать альтернативные варианты с использованием символа вертикальной черты ( «|» ). Вы вполне можете использовать такие шаблоны для сопоставления с входящими URL и отправки их в представления, но вы не можете обратить такие шаблоны.

Аргумент urlconf представляет собой модуль URLconf, содержащий шаблоны URL, которые следует использовать для реверсирования. По умолчанию используется корневой URLconf для текущего потока.

Применение дальнейшего кодирования (например, urllib.parse.quote() ) к выходу reverse() может привести к нежелательным результатам.

reverse_lazy() ¶

Лениво оцениваемая версия reverse().

Она полезна в тех случаях, когда необходимо использовать обратный URL до загрузки URLConf вашего проекта. Некоторые распространенные случаи, когда эта функция необходима:

resolve() ¶

Функция resolve() может использоваться для преобразования URL-путей к соответствующим функциям представления. Она имеет следующую сигнатуру:

Если URL не разрешается, функция выдает исключение Resolver404 (подкласс Http404 ).

class ResolverMatch [исходный код] ¶ func ¶

Функция представления, которая будет использоваться для обслуживания URL-адреса

Аргументы, которые будут переданы функции представления, как разобранные из URL.

Аргументы ключевых слов, которые будут переданы функции представления, как разобранные из URL.

Имя шаблона URL, который соответствует URL.

Маршрут, соответствующий шаблону URL.

Пространство имен приложения для шаблона URL, который соответствует URL.

Пространство имен экземпляра для шаблона URL, который соответствует URL.

Имя представления, которое соответствует URL, включая пространство имен, если оно есть.

Затем объект ResolverMatch может быть опрошен для получения информации о шаблоне URL, который соответствует URL:

Объект ResolverMatch также может быть присвоен тройке:

Одним из возможных вариантов использования resolve() может быть проверка того, будет ли представление выдавать ошибку Http404 перед перенаправлением на него:

get_script_prefix() ¶

Источник

что такое reverse () в Django

было бы неплохо, если бы кто-то дал ответ с примерами.

5 ответов

в своем urls.py определить следующим образом:

в шаблоне вы можете ссылаться на этот url как:

это будет отображаться как

вы могли бы просто сделать

вместо этого вы можете сказать

для этого есть док

его можно использовать для создания URL-адреса для данного представления

главным преимуществом является то, что вы не жесткий код маршрутов в вашем коде.

Это старый вопрос, но вот то, что может помочь кому-то.

из официальных документов:

Django предоставляет инструменты для выполнения обратного URL-адреса, которые соответствуют различные слои, где необходимы URL-адреса: в шаблонах: использование url-адреса тег шаблона. В коде Python: использование функции reverse (). In higher код уровня, связанный с обработкой URL-адресов экземпляров модели Django: get_absolute_url() метод.

например. в шаблоны (тега url)

например. в коде python (используя

использовать reverse() чтобы дать вам url-адрес страницы, учитывая либо путь к представлению, либо параметр page_name из вашего url conf. Вы бы использовали его в случаях, когда нет смысла делать это в шаблоне с <% url 'my-page' %>.

вы также можете использовать его при написании шаблонов.

reverse () используется для соблюдения принципа сухого django i.e если вы измените url-адрес в будущем, вы можете ссылаться на этот url-адрес с помощью reverse (urlname).

Источник

Служебные функции django.urls ¶

reverse() ¶

Если вам нужно использовать что-то похожее на тег шаблона url в вашем коде, Django предоставляет следующую функцию:

viewname может быть именем шаблона URL или самим объектом представления. Например, учитывая url следующее:

вы можете использовать любой из следующих вызовов, чтобы получить URL:

Эта функция reverse() может разрешать широкий спектр шаблонов регулярных выражений, соответствующих URL-адресам, но не все. Основное ограничение в настоящее время заключается в том, что шаблон не может содержать различные возможные варианты, обозначенные вертикальной чертой ( «|» ). Такие шаблоны можно легко использовать для разрешения входящих URL-адресов и вызова соответствующего представления, но их нельзя использовать для выполнения обратных разрешений.

reverse_lazy() ¶

Эта функция полезна, когда вам нужно выполнить разрешение URL перед загрузкой конфигурации URL. Вот несколько распространенных случаев использования этой функции:

resolve() ¶

Функцию resolve() можно использовать для разрешения пути URL к соответствующей функции просмотра. Его подпись следующая:

Если URL-адрес не разрешен, функция генерирует исключение Resolver404 (которое является подклассом Http404 ).

класс ResolverMatch ¶ func ¶

Функция просмотра, которая использовалась бы для обслуживания URL.

Параметры, которые были бы переданы функции просмотра, поскольку они были взяты из URL-адреса.

Именованные параметры, которые были бы переданы функции просмотра, поскольку они были взяты из URL-адреса.

Имя шаблона URL-адреса, соответствующего URL-адресу.

Маршрут соответствующего шаблона URL.

Пространство имен приложения для шаблона URL, соответствующего URL.

Пространство имен экземпляра для шаблона URL, соответствующего URL.

Имя представления, соответствующего URL-адресу, включая пространство имен, если оно есть.

ResolverMatch Затем можно запросить объект, чтобы предоставить информацию о шаблоне URL, соответствующем URL:

Также объект ResolverMatch может быть отнесен к триплету:

Одним из возможных вариантов использования for resolve() может быть проверка того, выдает ли представление ошибку, Http404 прежде чем использовать его в качестве цели перенаправления:

get_script_prefix() ¶

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *