- en
- Language: fr
Fonctions utilitaires django.conf.urls¶
patterns()¶
Obsolète depuis la version 1.8: urlpatterns devrait plutôt être une simple liste d’instances django.conf.urls.url().
Une fonction acceptant un préfixe et un nombre arbitraire de motifs d’URL, et renvoyant une liste de motifs d’URL au format attendu par Django.
Le premier paramètre reçu par patterns() est un préfixe textuel. Voici l’exemple de configuration d’URL présenté dans Présentation de Django:
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^articles/([0-9]{4})/$', 'news.views.year_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', 'news.views.month_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', 'news.views.article_detail'),
)
Dans cet exemple, chaque vue a un préfixe commun – 'news.views'. Au lieu de le taper pour chaque élément de la variable urlpatterns, vous pouvez utiliser le premier paramètre de la fonction patterns() pour définir un préfixe à appliquer à chaque vue.
Avec ceci, l’exemple ci-dessus peut être écrit de façon plus concise :
from django.conf.urls import patterns, url
urlpatterns = patterns('news.views',
url(r'^articles/([0-9]{4})/$', 'year_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', 'month_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', 'article_detail'),
)
Remarquez que l’on ne met pas de point (".") à la fin du préfixe. Django s’en charge automatiquement.
Les paramètres restants doivent être des tuples dans ce format :
(regular expression, Python callback function [, optional_dictionary [, optional_name]])
Les paramètres optional_dictionary et optional_name sont décrits dans Transmission de paramètres supplémentaires à une vue.
Note
Comme patterns() est un appel de fonction, elle accepte un maximum de 255 paramètres (de motifs d’URL dans ce cas). Cette limite s’applique à tous les appels de fonctions Python. C’est rarement un problème en pratique, parce que les motifs d’URL sont généralement structurés de façon modulaire avec plusieurs sections include(). Cependant, dans l’hypothèse où vous seriez tout de même confronté à la limite des 255 paramètres, sachez que patterns() renvoie une liste Python, il est donc toujours possible de segmenter la construction de la liste.
urlpatterns = patterns('',
...
)
urlpatterns += patterns('',
...
)
Les listes Python ne sont pas limitées en taille, il n’y a donc aucune limite au nombre de motifs d’URL qu’il est possible de construire. La seule limite est que vous ne pouvez en créer que 254 à la fois (le 255e paramètre est le premier paramètre du préfixe).
static()¶
- static.static(prefix, view=django.views.static.serve, **kwargs)¶
Fonction utilitaire qui renvoie un motif d’URL pour servir les fichiers en mode débogage :
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)
Le paramètre view est passé d’une chaîne ('django.views.static.serve') à la fonction elle-même.
url()¶
urlpatterns doit être une liste d’instances url(). Par exemple :
urlpatterns = [
url(r'^index/$', index_view, name="main-view"),
...
]
Cette fonction accepte cinq paramètres, mais la plupart sont facultatifs :
url(regex, view, kwargs=None, name=None, prefix='')
Le paramètre kwargs permet de transmettre des paramètres supplémentaires à la fonction ou méthode de vue. Voir Transmission de paramètres supplémentaires à une vue pour un exemple.
Voir Nommage des motifs d’URL pour connaître l’utilité du paramètre name.
Obsolète depuis la version 1.8: La prise en charge des paramètres textuels pour view est obsolète et sera supprimée dans Django 1.10. Passez plutôt l’objet exécutable lui-même.
Le paramètre prefix a la même signification que le premier paramètre de patterns() et n’a de sens que si le paramètre view est transmis sous forme de chaîne.
include()¶
- include(module, namespace=None, app_name=None)[source]¶
- include(pattern_list)
- include((pattern_list, app_namespace, instance_namespace))
Une fonction acceptant un chemin d’importation Python complet vers un autre module de configuration d’URL devant être « inclus » à cet endroit. Il est possible d’indiquer aussi l’espace de noms d’application et l’espace de noms d’instance dans lesquels les éléments seront inclus.
include() accepte aussi en paramètre soit un objet itérable renvoyant des motifs d’URL ou un tuple ternaire contenant un tel objet itérable accompagné des noms des espaces de noms d’application et d’instance.
Paramètres: - module – Module de configuration d’URL (ou nom de module)
- namespace (string) – Espace de noms d’instance pour les lignes d’URL à inclure
- app_name (string) – Espace de noms d’application pour les lignes d’URL à inclure
- pattern_list – Liste d’instances django.conf.urls.url()
- app_namespace (string) – Espace de noms d’application pour les lignes d’URL à inclure
- instance_namespace (string) – Espace de noms d’instance pour les lignes d’URL à inclure
Voir Inclusion d’autres URLconfs et Espaces de noms d’URL et configurations d’URL incluses.
handler400¶
- handler400¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée si le client HTTP a envoyé une requête qui a provoqué une condition d’erreur et une réponse avec un code de statut 400.
Par défaut, il s’agit de 'django.views.defaults.bad_request'. Cette valeur par défaut convient généralement bien.
Consultez la documentation à propos de la vue 400 (mauvaise requête) pour plus d’informations.
handler403¶
- handler403¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée si l’utilisateur n’a pas les droits nécessaires pour accéder à une ressource.
Par défaut, il s’agit de 'django.views.defaults.permission_denied'. Cette valeur par défaut convient généralement bien.
Consultez la documentation à propos de la vue 403 (HTTP interdit) pour plus d’informations.
handler404¶
- handler404¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée si aucun des motifs d’URL ne correspond.
Par défaut, il s’agit de 'django.views.defaults.page_not_found'. Cette valeur par défaut convient généralement bien.
Consultez la documentation à propos de la vue 404 (HTTP non trouvé) pour plus d’informations.
handler500¶
- handler500¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée en cas d’erreur de serveur. Les erreurs de serveur se produisent lorsque des erreurs d’exécution apparaissent dans le code des vues.
Par défaut, il s’agit de 'django.views.defaults.server_error'. Cette valeur par défaut convient généralement bien.
Consultez la documentation à propos de la vue 500 (HTTP erreur interne de serveur) pour plus d’informations.