{"title":"Fonctions utilitaires django.urls","version":"2.1","locale":"fr","docname":"ref/urlresolvers","url":"/fr/2.1/ref/urlresolvers/","canonical":"https://djangodocs.dev/fr/2.1/ref/urlresolvers/","summary":"reverse() Lien vers cette rubrique # Si vous avez besoin d’utiliser quelque chose de semblable à la balise de gabarit url dans votre code, Django fournit la…","html":"<span id=\"django-urls-utility-functions\"></span><h1>Fonctions utilitaires <code class=\"docutils literal notranslate\">django.urls</code><a class=\"heading-anchor\" href=\"#module-django.urls\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"reverse\">\n<h2><code class=\"docutils literal notranslate\">reverse()</code><a class=\"heading-anchor\" href=\"#reverse\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Si vous avez besoin d’utiliser quelque chose de semblable à la balise de gabarit <a class=\"reference internal\" href=\"/fr/2.1/ref/templates/builtins/#std-templatetag-url\"><code class=\"xref std std-ttag docutils literal notranslate\">url</code></a> dans votre code, Django fournit la fonction suivante :</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.reverse\">\n<span class=\"sig-name descname\">reverse</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">viewname</em>, <em class=\"sig-param\">urlconf<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">args<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">kwargs<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">current_app<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.reverse\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\">viewname</code> peut être un <a class=\"reference internal\" href=\"/fr/2.1/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">nom de motif d’URL</span></a> ou l’objet de vue lui-même. Par exemple, étant donné l”<code class=\"docutils literal notranslate\">url</code> suivante :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">news</span> <span class=\"kn\">import</span> views\n\npath<span class=\"p\">(</span><span class=\"s1\">&#39;archive/&#39;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>archive<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s1\">&#39;news-archive&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>vous pouvez utiliser indifféremment les appels suivants pour obtenir l’URL :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># using the named URL</span>\nreverse<span class=\"p\">(</span><span class=\"s1\">&#39;news-archive&#39;</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># passing a callable object</span>\n<span class=\"c1\"># (This is discouraged because you can&#39;t reverse namespaced views this way.)</span>\n<span class=\"kn\">from</span> <span class=\"nn\">news</span> <span class=\"kn\">import</span> views\nreverse<span class=\"p\">(</span>views<span class=\"o\">.</span>archive<span class=\"p\">)</span>\n</code></pre></div>\n<p>Si l’URL accepte des paramètres, vous pouvez les transmettre dans <code class=\"docutils literal notranslate\">args</code>. par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> reverse\n\n<span class=\"k\">def</span> <span class=\"nf\">myview</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"k\">return</span> HttpResponseRedirect<span class=\"p\">(</span>reverse<span class=\"p\">(</span><span class=\"s1\">&#39;arch-summary&#39;</span><span class=\"p\">,</span> args<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"mi\">1945</span><span class=\"p\">]))</span>\n</code></pre></div>\n<p>Vous pouvez aussi transmettre <code class=\"docutils literal notranslate\">kwargs</code> au lieu de <code class=\"docutils literal notranslate\">args</code>. Par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>reverse<span class=\"p\">(</span><span class=\"s1\">&#39;admin:app_list&#39;</span><span class=\"p\">,</span> kwargs<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;app_label&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;auth&#39;</span><span class=\"p\">})</span>\n<span class=\"go\">&#39;/admin/auth/&#39;</span>\n</code></pre></div>\n<p>Il n’est pas possible de passer à la fois <code class=\"docutils literal notranslate\">args</code> et <code class=\"docutils literal notranslate\">kwargs</code> à <code class=\"docutils literal notranslate\">reverse()</code>.</p>\n<p>Si aucune correspondance n’est trouvée, <code class=\"docutils literal notranslate\">reverse()</code> génère une exception <a class=\"reference internal\" href=\"/fr/2.1/ref/exceptions/#django.urls.NoReverseMatch\" title=\"django.urls.NoReverseMatch\"><code class=\"xref py py-class docutils literal notranslate\">NoReverseMatch</code></a>.</p>\n<p>La fonction <code class=\"docutils literal notranslate\">reverse()</code> peut résoudre une large palette de motifs d’expressions régulières correspondant à des URL, mais pas tous. La principale restriction actuellement est que le motif ne peut pas contenir différents choix possibles indiqués par la barre verticale (<code class=\"docutils literal notranslate\">&quot;|&quot;</code>). De tels motifs peuvent sans problème être utilisés pour résoudre des URL entrantes et faire appel à la vue correspondante, mais il n’est pas possible de les utiliser pour effectuer des résolutions inverses.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\">current_app</code> vous permet de donner une indication au résolveur pour signaler l’application à laquelle appartient la vue en cours d’exécution. Ce paramètre  <code class=\"docutils literal notranslate\">current_app</code> est employé comme indication pour résoudre des espaces de noms d’application en URL d’instances spécifiques d’application, en accord avec la <a class=\"reference internal\" href=\"/fr/2.1/topics/http/urls/#topics-http-reversing-url-namespaces\"><span class=\"std std-ref\">stratégie de résolution d’URL avec espaces de noms</span></a>.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\">urlconf</code> est le module de configuration d’URL contenant les motifs d’URL à utiliser pour la résolution. Par défaut, la configuration d’URL racine du fil d’exécution en cours est utilisée.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>La chaîne d’URL renvoyée par <code class=\"docutils literal notranslate\">reverse()</code> est déjà <a class=\"reference internal\" href=\"/fr/2.1/ref/unicode/#uri-and-iri-handling\"><span class=\"std std-ref\">échappée</span></a>. Par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>reverse<span class=\"p\">(</span><span class=\"s1\">&#39;cities&#39;</span><span class=\"p\">,</span> args<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;Orléans&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&#39;.../Orl%C3%A9ans/&#39;</span>\n</code></pre></div>\n<p>Si vous appliquez d’autres codages (tel que <a class=\"reference external\" href=\"https://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">urllib.parse.quote()</code></a>) à la valeur renvoyée par <code class=\"docutils literal notranslate\">reverse()</code>, cela peut produire des résultats non désirés.</p>\n</aside>\n</section>\n<section id=\"reverse-lazy\">\n<h2><code class=\"docutils literal notranslate\">reverse_lazy()</code><a class=\"heading-anchor\" href=\"#reverse-lazy\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Une version de <a class=\"reference internal\" href=\"#reverse\">reverse()</a> à exécution différée.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.reverse_lazy\">\n<span class=\"sig-name descname\">reverse_lazy</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">viewname</em>, <em class=\"sig-param\">urlconf<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">args<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">kwargs<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">current_app<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.reverse_lazy\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Cette fonction est utile lorsque vous avez besoin de procéder à une résolution d’URL avant le chargement de la configuration des URL. Voici quelques cas fréquents d’utilisation de cette fonction :</p>\n<ul class=\"simple\">\n<li><p>attribution d’une URL inversée comme attribut <code class=\"docutils literal notranslate\">url</code> d’une vue générique fondée sur les classes.</p></li>\n<li><p>attribution d’une URL inversée à un décorateur (comme pour le paramètre <code class=\"docutils literal notranslate\">login_url</code> du décorateur <a class=\"reference internal\" href=\"/fr/2.1/topics/auth/default/#django.contrib.auth.decorators.permission_required\" title=\"django.contrib.auth.decorators.permission_required\"><code class=\"xref py py-func docutils literal notranslate\">django.contrib.auth.decorators.permission_required()</code></a>).</p></li>\n<li><p>attribution d’une URL inversée comme valeur par défaut d’un paramètre dans une signature de fonction.</p></li>\n</ul>\n</section>\n<section id=\"resolve\">\n<h2><code class=\"docutils literal notranslate\">resolve()</code><a class=\"heading-anchor\" href=\"#resolve\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>La fonction <code class=\"docutils literal notranslate\">resolve()</code> peut être utilisée pour résoudre un chemin d’URL en sa fonction de vue correspondante. Sa signature est la suivante :</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.resolve\">\n<span class=\"sig-name descname\">resolve</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">path</em>, <em class=\"sig-param\">urlconf<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.resolve\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\">path</code> est le chemin d’URL à résoudre. Comme pour <a class=\"reference internal\" href=\"#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a>, il n’y a pas besoin de se préoccuper du paramètre <code class=\"docutils literal notranslate\">urlconf</code>. La focntion renvoie un objet <a class=\"reference internal\" href=\"#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</code></a> permettant d’accéder à diverses métadonnées au sujet de l’URL résolue.</p>\n<p>Si l’URL n’est pas résolue, la fonction génère l’exception <a class=\"reference internal\" href=\"/fr/2.1/ref/exceptions/#django.urls.Resolver404\" title=\"django.urls.Resolver404\"><code class=\"xref py py-exc docutils literal notranslate\">Resolver404</code></a> (qui est une sous-classe de <a class=\"reference internal\" href=\"/fr/2.1/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-class docutils literal notranslate\">Http404</code></a>).</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ResolverMatch</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.func\">\n<span class=\"sig-name descname\">func</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.func\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La fonction de vue qui aurait été utilisée pour servir l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.args\">\n<span class=\"sig-name descname\">args</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.args\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les paramètres qui auraient été transmis à la fonction de vue, tels qu’ils ont été extraits de l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.kwargs\">\n<span class=\"sig-name descname\">kwargs</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.kwargs\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Les paramètres nommés qui auraient été transmis à la fonction de vue, tels qu’ils ont été extraits de l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.url_name\">\n<span class=\"sig-name descname\">url_name</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.url_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom du motif d’URL correspondant à l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.app_name\">\n<span class=\"sig-name descname\">app_name</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.app_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>L’espace de noms d’application pour le motif d’URL correspondant à l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.app_names\">\n<span class=\"sig-name descname\">app_names</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.app_names\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La liste des composants d’espace de noms individuels dans l’espace de noms d’application complet du motif d’URL correspondant à l’URL. Si par exemple <code class=\"docutils literal notranslate\">app_name</code> contient <code class=\"docutils literal notranslate\">foo:bar</code>, alors <code class=\"docutils literal notranslate\">app_names</code> contiendra <code class=\"docutils literal notranslate\">['foo', 'bar']</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.namespace\">\n<span class=\"sig-name descname\">namespace</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.namespace\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>L’espace de noms d’instance pour le motif d’URL correspondant à l’URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.namespaces\">\n<span class=\"sig-name descname\">namespaces</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.namespaces\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La liste des composants d’espace de noms individuels dans l’espace de noms d’instance complet du motif d’URL correspondant à l’URL. Si par exemple l’espace de noms est <code class=\"docutils literal notranslate\">foo:bar</code>, <code class=\"docutils literal notranslate\">namespaces</code> contiendra <code class=\"docutils literal notranslate\">['foo', 'bar']</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.urls.ResolverMatch.view_name\">\n<span class=\"sig-name descname\">view_name</span><a class=\"heading-anchor\" href=\"#django.urls.ResolverMatch.view_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom de la vue qui correspond à l’URL, y compris l’espace de noms s’il y en a un.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>Un objet <a class=\"reference internal\" href=\"#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</code></a> peut ensuite être interrogé pour fournir des informations au sujet du motif d’URL correspondant à une URL :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># Resolve a URL</span>\nmatch <span class=\"o\">=</span> resolve<span class=\"p\">(</span><span class=\"s1\">&#39;/some/path/&#39;</span><span class=\"p\">)</span>\n<span class=\"c1\"># Print the URL pattern that matches the URL</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span>match<span class=\"o\">.</span>url_name<span class=\"p\">)</span>\n</code></pre></div>\n<p>Un objet <a class=\"reference internal\" href=\"#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</code></a> peut aussi être attribué à une triplette :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>func<span class=\"p\">,</span> args<span class=\"p\">,</span> kwargs <span class=\"o\">=</span> resolve<span class=\"p\">(</span><span class=\"s1\">&#39;/some/path/&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>L’une des utilisations possibles de <a class=\"reference internal\" href=\"#django.urls.resolve\" title=\"django.urls.resolve\"><code class=\"xref py py-func docutils literal notranslate\">resolve()</code></a> pourrait être de tester si une vue produit une erreur <code class=\"docutils literal notranslate\">Http404</code> avant de l’utiliser comme cible de redirection :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">urllib.parse</span> <span class=\"kn\">import</span> urlparse\n<span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> resolve\n<span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> Http404<span class=\"p\">,</span> HttpResponseRedirect\n\n<span class=\"k\">def</span> <span class=\"nf\">myview</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"nb\">next</span> <span class=\"o\">=</span> request<span class=\"o\">.</span>META<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"s1\">&#39;HTTP_REFERER&#39;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"s1\">&#39;/&#39;</span>\n    response <span class=\"o\">=</span> HttpResponseRedirect<span class=\"p\">(</span><span class=\"nb\">next</span><span class=\"p\">)</span>\n\n    <span class=\"c1\"># modify the request and response as required, e.g. change locale</span>\n    <span class=\"c1\"># and set corresponding locale cookie</span>\n\n    view<span class=\"p\">,</span> args<span class=\"p\">,</span> kwargs <span class=\"o\">=</span> resolve<span class=\"p\">(</span>urlparse<span class=\"p\">(</span><span class=\"nb\">next</span><span class=\"p\">)[</span><span class=\"mi\">2</span><span class=\"p\">])</span>\n    kwargs<span class=\"p\">[</span><span class=\"s1\">&#39;request&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> request\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        view<span class=\"p\">(</span><span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">)</span>\n    <span class=\"k\">except</span> Http404<span class=\"p\">:</span>\n        <span class=\"k\">return</span> HttpResponseRedirect<span class=\"p\">(</span><span class=\"s1\">&#39;/&#39;</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> response\n</code></pre></div>\n</section>\n<section id=\"get-script-prefix\">\n<h2><code class=\"docutils literal notranslate\">get_script_prefix()</code><a class=\"heading-anchor\" href=\"#get-script-prefix\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.urls.get_script_prefix\">\n<span class=\"sig-name descname\">get_script_prefix</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.urls.get_script_prefix\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Normalement, vous devriez toujours utiliser <a class=\"reference internal\" href=\"#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a> pour définir des URL dans votre application. Cependant, si l’application construit elle-même une partie de la hiérarchie des URL, il peut parfois être utile de produire soi-même des URL. Dans ce cas, il est nécessaire de pouvoir connaître l’URL de base du projet Django dans le contexte du serveur Web (<a class=\"reference internal\" href=\"#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a> s’occupe en principe de le faire à votre place). Dans ce cas, vous pouvez appeler <code class=\"docutils literal notranslate\">get_script_prefix()</code>, qui renvoie la portion de préfixe de script des URL du projet Django. Si ce projet est placé à la racine de son serveur Web, la valeur est toujours <code class=\"docutils literal notranslate\">&quot;/&quot;</code>.</p>\n</section>","rootId":"module-django.urls","toc":[{"title":"reverse()","anchor":"reverse","children":[]},{"title":"reverse_lazy()","anchor":"reverse-lazy","children":[]},{"title":"resolve()","anchor":"resolve","children":[]},{"title":"get_script_prefix()","anchor":"get-script-prefix","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/2.1/ref/"}],"prev":{"docname":"ref/unicode","title":"Données Unicode","url":"/fr/2.1/ref/unicode/"},"next":{"docname":"ref/urls","title":"Fonctions django.urls à utiliser dans les configurations d’URL","url":"/fr/2.1/ref/urls/"},"formats":{"html":"/fr/2.1/ref/urlresolvers/","markdown":"/fr/2.1/ref/urlresolvers.md","json":"/fr/2.1/ref/urlresolvers.json"},"source":"https://github.com/django/django/blob/stable/2.1.x/docs/ref/urlresolvers.txt","official":"https://docs.djangoproject.com/fr/2.1/ref/urlresolvers/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}