{"title":"Réglages","version":"6.1","locale":"fr","docname":"ref/settings","url":"/fr/6.1/ref/settings/","canonical":"https://djangodocs.dev/fr/6.1/ref/settings/","summary":"Réglages de base Auth Messages Sessions Sites Fichiers statiques Index thématique des réglages de base Avertissement Soyez prudent lorsque vous surchargez les…","html":"<h1>Réglages<a class=\"heading-anchor\" href=\"#settings\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<nav class=\"contents local\" id=\"sommaire\">\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#core-settings\" id=\"id16\">Réglages de base</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#auth\" id=\"id17\">Auth</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#messages\" id=\"id18\">Messages</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#sessions\" id=\"id19\">Sessions</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#sites\" id=\"id20\">Sites</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#static-files\" id=\"id21\">Fichiers statiques</a></p></li>\n<li><p><a class=\"reference internal\" href=\"#core-settings-topical-index\" id=\"id22\">Index thématique des réglages de base</a></p></li>\n</ul>\n</nav>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p>Soyez prudent lorsque vous surchargez les réglages, particulièrement quand la valeur par défaut est une liste ou un dictionnaire non vide, comme <a class=\"reference internal\" href=\"#std-setting-STATICFILES_FINDERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_FINDERS</span></code></a>. Prenez soin de conserver les composants requis par les fonctionnalités de Django que vous souhaitez utiliser.</p>\n</aside>\n<section id=\"core-settings\">\n<h2><a class=\"toc-backref\" href=\"#id16\" role=\"doc-backlink\">Réglages de base</a><a class=\"headerlink\" href=\"#core-settings\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<p>Voici une liste des réglages disponibles au sein de Django et leurs valeurs par défaut. Les réglages fournis par les applications contrib sont énumérés ci-dessous, suivi d’un index des réglages de base par sujet. Pour une introduction sur le sujet, consultez le <a class=\"reference internal\" href=\"/fr/6.1/topics/settings/\"><span class=\"doc\">guide thématique des réglages</span></a>.</p>\n<section id=\"absolute-url-overrides\">\n<span id=\"std-setting-ABSOLUTE_URL_OVERRIDES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ABSOLUTE_URL_OVERRIDES</span></code><a class=\"heading-anchor\" href=\"#absolute-url-overrides\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code> (dictionnaire vide)</p>\n<p>Un dictionnaire faisant correspondre des chaînes du style <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;étiquette_app.nom_modèle&quot;</span></code> à des fonctions qui acceptent un objet de modèle et renvoient son URL. C’est une façon d’insérer ou de surcharger les méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code> en fonction de l’installation. 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=\"n\">ABSOLUTE_URL_OVERRIDES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;blogs.blog&quot;</span><span class=\"p\">:</span> <span class=\"k\">lambda</span> <span class=\"n\">o</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/blogs/</span><span class=\"si\">%s</span><span class=\"s2\">/&quot;</span> <span class=\"o\">%</span> <span class=\"n\">o</span><span class=\"o\">.</span><span class=\"n\">slug</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;news.story&quot;</span><span class=\"p\">:</span> <span class=\"k\">lambda</span> <span class=\"n\">o</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/stories/</span><span class=\"si\">%s</span><span class=\"s2\">/</span><span class=\"si\">%s</span><span class=\"s2\">/&quot;</span> <span class=\"o\">%</span> <span class=\"p\">(</span><span class=\"n\">o</span><span class=\"o\">.</span><span class=\"n\">pub_year</span><span class=\"p\">,</span> <span class=\"n\">o</span><span class=\"o\">.</span><span class=\"n\">slug</span><span class=\"p\">),</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Le nom de modèle utilisé dans ce réglage doit être tout en minuscules, quelle que soit la casse du nom de la classe modèle réelle.</p>\n</section>\n<section id=\"admins\">\n<span id=\"std-setting-ADMINS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code><a class=\"heading-anchor\" href=\"#admins\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste de toutes les personnes qui reçoivent les notifications d’erreurs dans le code. Lorsque <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG=False</span></code></a> et que <a class=\"reference internal\" href=\"/fr/6.1/ref/logging/#django.utils.log.AdminEmailHandler\" title=\"django.utils.log.AdminEmailHandler\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminEmailHandler</span></code></a> est configuré dans <a class=\"reference internal\" href=\"#std-setting-LOGGING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code></a> (comportement par défaut), Django envoie un courriel à ces personnes contenant les détails des exceptions produites dans le cycle requête/réponse.</p>\n<p>Chaque élément de la liste doit être une chaîne contenant une adresse électronique. 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=\"n\">ADMINS</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;john@example.com&quot;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&quot;Ng, Mary&quot; &lt;mary@example.com&gt;&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>To safely build an address with a display name from variable content, see\n<a class=\"reference internal\" href=\"/fr/6.1/topics/email/#formatting-addresses\"><span class=\"std std-ref\">Formatting email addresses</span></a>, which recommends using\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Address</span></code></a> over string formatting, but since this\nsetting requires a list of strings, wrap each <code class=\"docutils literal notranslate\"><span class=\"pre\">Address</span></code> in <code class=\"docutils literal notranslate\"><span class=\"pre\">str(...)</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Dans les anciennes versions, il était nécessaire d’indiquer une liste de tuples (nom, adresse).</p>\n</aside>\n</section>\n<section id=\"allowed-hosts\">\n<span id=\"std-setting-ALLOWED_HOSTS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code><a class=\"heading-anchor\" href=\"#allowed-hosts\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste de chaînes représentant des noms de domaine/d’hôte que ce site Django peut servir. C’est une mesure de sécurité pour empêcher les <a class=\"reference internal\" href=\"/fr/6.1/topics/security/#host-headers-virtual-hosting\"><span class=\"std std-ref\">attaques d’en-tête Host HTTP</span></a>, qui sont possibles même avec bien des configurations de serveur web apparemment sécurisées.</p>\n<p>Les valeurs de cette liste peuvent être des noms complètement qualifiés (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">'www.example.com'</span></code>), auquel cas ils seront comparés exactement (insensible à la casse, port exclu) avec l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> de la requête. Une valeur commençant par un point peut être utilisée comme métacaractère de sous-domaine : <code class=\"docutils literal notranslate\"><span class=\"pre\">'.example.com'</span></code> correspondra à <code class=\"docutils literal notranslate\"><span class=\"pre\">example.com</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">www.example.com</span></code>, et tout autre sous-domaine de <code class=\"docutils literal notranslate\"><span class=\"pre\">example.com</span></code>. Une valeur <code class=\"docutils literal notranslate\"><span class=\"pre\">'*'</span></code> correspond à tout ; dans ce cas, vous êtes responsable de fournir votre propre validation de l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> (éventuellement dans un middleware ; dans ce cas, le middleware doit figurer en premier dans <a class=\"reference internal\" href=\"#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a>).</p>\n<p>Django permet également d’écrire un <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/Fully_qualified_domain_name\">nom de domaine pleinement qualifié (FQDN)</a> dans la liste. Certains navigateurs incluent un point terminal dans l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code>; Django l’enlève au moment de la validation d’hôte.</p>\n<p>Si l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> (ou <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Host</span></code> quand <a class=\"reference internal\" href=\"#std-setting-USE_X_FORWARDED_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_HOST</span></code></a> est actif) ne correspond à aucune valeur de cette liste, la méthode <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest.get_host\" title=\"django.http.HttpRequest.get_host\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">django.http.HttpRequest.get_host()</span></code></a> lèvera <a class=\"reference internal\" href=\"/fr/6.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">SuspiciousOperation</span></code></a>.</p>\n<p>Lorsque <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> et que <code class=\"docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code> est vide, l’hôte est validé selon <code class=\"docutils literal notranslate\"><span class=\"pre\">['.localhost',</span> <span class=\"pre\">'127.0.0.1',</span> <span class=\"pre\">'[::1]']</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code> est aussi <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/advanced/#topics-testing-advanced-multiple-hosts\"><span class=\"std std-ref\">contrôlé lors de l’exécution des tests</span></a>.</p>\n<p>Cette validation ne s’applique qu’avec <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest.get_host\" title=\"django.http.HttpRequest.get_host\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_host()</span></code></a> ; si votre code accède directement à l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> dans <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META</span></code>, vous outrepassez cette protection de sécurité.</p>\n</section>\n<section id=\"append-slash\">\n<span id=\"std-setting-APPEND_SLASH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code><a class=\"heading-anchor\" href=\"#append-slash\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> et que l’URL de la requête ne correspond à aucun des motifs de l’URLconf et que l’URL ne se termine pas par une barre oblique (slash), Django effectue une redirection HTTP vers la même URL additionnée d’une barre oblique finale. Notez que la redirection peut causer la perte d’éventuelles données envoyées avec une requête POST.</p>\n<p>Le réglage <a class=\"reference internal\" href=\"#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code></a> n’est utilisé que si <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code></a> est installé (voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/middleware/\"><span class=\"doc\">Intergiciels (« Middleware »)</span></a>). Voir aussi <a class=\"reference internal\" href=\"#std-setting-PREPEND_WWW\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">PREPEND_WWW</span></code></a>.</p>\n</section>\n<section id=\"caches\">\n<span id=\"std-setting-CACHES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CACHES</span></code><a class=\"heading-anchor\" href=\"#caches\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.cache.backends.locmem.LocMemCache&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Un dictionnaire contenant les réglages de tous les caches à utiliser avec Django. C’est un dictionnaire imbriqué dont les contenus sont une correspondance entre les alias des caches et un dictionnaire contenant les options de chacun des caches.</p>\n<p>Le réglage <a class=\"reference internal\" href=\"#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> doit configurer un cache <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> (par défaut) ; il est possible d’ajouter autant d’autres caches que souhaité. Si vous utilisez un moteur de cache autre que le cache de mémoire locale ou que vous deviez définir plusieurs caches, d’autres options devront être ajoutées. Les options de cache suivantes sont disponibles.</p>\n<section id=\"backend\">\n<span id=\"std-setting-CACHES-BACKEND\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code><a class=\"heading-anchor\" href=\"#backend\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Le moteur de cache à utiliser. Les moteurs de cache intégrés à Django sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.db.DatabaseCache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.dummy.DummyCache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.filebased.FileBasedCache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.locmem.LocMemCache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.memcached.PyMemcacheCache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.memcached.PyLibMCCache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.cache.backends.redis.RedisCache'</span></code></p></li>\n</ul>\n<p>Vous pouvez utiliser un moteur de cache non livré avec Django en définissant <a class=\"reference internal\" href=\"#std-setting-CACHES-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code></a> à un chemin complètement qualifié d’une classe de moteur de cache (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">monpaquet.moteurs.quelquechose.MonCache</span></code>).</p>\n</section>\n<section id=\"key-function\">\n<span id=\"std-setting-CACHES-KEY_FUNCTION\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">KEY_FUNCTION</span></code><a class=\"heading-anchor\" href=\"#key-function\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>A string containing a dotted path to a function (or any callable) that defines\nhow to compose a key, prefix, and version into a final cache key. The default\nfunction converts the components to strings and joins them with colons, as\nshown in the <a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#cache-key-transformation\"><span class=\"std std-ref\">cache documentation</span></a>.</p>\n<p>Vous pouvez utiliser n’importe quelle fonction de clé, tant que la signature des paramètres est la même.</p>\n</section>\n<section id=\"key-prefix\">\n<span id=\"std-setting-CACHES-KEY_PREFIX\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">KEY_PREFIX</span></code><a class=\"heading-anchor\" href=\"#key-prefix\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Une chaîne qui sera automatiquement incluse (préfixée par défaut) à toutes les clés de cache utilisées par le serveur Django.</p>\n<p>Consultez la <a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#cache-key-prefixing\"><span class=\"std std-ref\">documentation du cache</span></a> pour plus d’informations.</p>\n</section>\n<section id=\"location\">\n<span id=\"std-setting-CACHES-LOCATION\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">LOCATION</span></code><a class=\"heading-anchor\" href=\"#location\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>L’emplacement du cache. Cela peut être un répertoire pour un cache en système de fichiers, un hôte et un port pour le moteur <code class=\"docutils literal notranslate\"><span class=\"pre\">memcache</span></code>, ou un identifiant pour un cache en mémoire locale, par ex. :</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=\"n\">CACHES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.cache.backends.filebased.FileBasedCache&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;LOCATION&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/var/tmp/django_cache&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</section>\n<section id=\"options\">\n<span id=\"std-setting-CACHES-OPTIONS\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code><a class=\"heading-anchor\" href=\"#options\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Paramètres supplémentaires à transmettre au moteur de cache. Les paramètres disponibles varient en fonction du moteur de cache.</p>\n<p>Certaines informations sur les paramètres disponibles peuvent être trouvées dans la documentation des <a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#cache-arguments\"><span class=\"std std-ref\">paramètres de cache</span></a>. Pour plus d’informations, consultez la documentation propre au module du moteur utilisé.</p>\n</section>\n<section id=\"timeout\">\n<span id=\"std-setting-CACHES-TIMEOUT\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">TIMEOUT</span></code><a class=\"heading-anchor\" href=\"#timeout\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">300</span></code></p>\n<p>Le nombre de secondes avant qu’une entrée de cache soit considérée comme obsolète. Si la valeur de ce réglage est <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, les contenus du cache n’expirent jamais. Une valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code> provoque l’expiration immédiate des clés (effet équivalent à « ne pas mettre en cache »).</p>\n</section>\n<section id=\"version\">\n<span id=\"std-setting-CACHES-VERSION\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">VERSION</span></code><a class=\"heading-anchor\" href=\"#version\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code></p>\n<p>Le numéro de version par défaut des clés de cache générées par le serveur Django.</p>\n<p>Consultez la <a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#cache-versioning\"><span class=\"std std-ref\">documentation du cache</span></a> pour plus d’informations.</p>\n</section>\n</section>\n<section id=\"cache-middleware-alias\">\n<span id=\"std-setting-CACHE_MIDDLEWARE_ALIAS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_ALIAS</span></code><a class=\"heading-anchor\" href=\"#cache-middleware-alias\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'default'</span></code></p>\n<p>La connexion de cache à utiliser pour l’<a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#the-per-site-cache\"><span class=\"std std-ref\">intergiciel de cache</span></a>.</p>\n</section>\n<section id=\"cache-middleware-key-prefix\">\n<span id=\"std-setting-CACHE_MIDDLEWARE_KEY_PREFIX\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_KEY_PREFIX</span></code><a class=\"heading-anchor\" href=\"#cache-middleware-key-prefix\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Une chaîne qui servira de préfixe aux clés de cache générées par l’<a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#the-per-site-cache\"><span class=\"std std-ref\">intergiciel de cache</span></a>. Ce préfixe est combiné avec le réglage <a class=\"reference internal\" href=\"#std-setting-CACHES-KEY_PREFIX\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">KEY_PREFIX</span></code></a>, il ne le remplace pas.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/cache/\"><span class=\"doc\">L’infrastructure de cache dans Django</span></a>.</p>\n</section>\n<section id=\"cache-middleware-seconds\">\n<span id=\"std-setting-CACHE_MIDDLEWARE_SECONDS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_SECONDS</span></code><a class=\"heading-anchor\" href=\"#cache-middleware-seconds\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">600</span></code></p>\n<p>Le nombre entier de secondes correspondant à la durée par défaut de mise en cache d’une page pour l’<a class=\"reference internal\" href=\"/fr/6.1/topics/cache/#the-per-site-cache\"><span class=\"std std-ref\">intergiciel de cache</span></a>.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/cache/\"><span class=\"doc\">L’infrastructure de cache dans Django</span></a>.</p>\n</section>\n<section id=\"csrf-cookie-age\">\n<span id=\"std-setting-CSRF_COOKIE_AGE\"></span><span id=\"settings-csrf\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_AGE</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-age\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">31449600</span></code> (environ 1 année, en secondes)</p>\n<p>L’âge des cookies CSRF, en secondes.</p>\n<p>La raison de définir une période d’expiration à longue durée est d’éviter des problèmes au cas où un utilisateur ferme le navigateur ou place un signet sur une page, puis recharge cette page depuis le cache du navigateur. Sans cookies persistants, la soumission du formulaire échoue dans ces situations.</p>\n<p>Certains navigateurs (spécifiquement Internet Explorer) peuvent prohiber l’utilisation de cookies persistants ou posséder un index de conteneur de cookies corrompu sur disque, ce qui fera échouer les contrôles de protection CSRF (et parfois de manière intermittente). Définissez ce réglage à <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour utiliser des cookies CSRF basés sur la session, ce qui conserve les cookies en mémoire au lieu d’utiliser un stockage persistant.</p>\n</section>\n<section id=\"csrf-cookie-domain\">\n<span id=\"std-setting-CSRF_COOKIE_DOMAIN\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_DOMAIN</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-domain\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le domaine à utiliser lors de la définition du cookie CSRF. Cela peut être utile pour facilement exclure des requêtes inter-domaines de la protection habituelle contre les attaques inter-sites. Il devrait être défini à une chaîne telle que <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;.example.com&quot;</span></code> pour autoriser une requête POST provenant d’un formulaire d’un sous-domaine à être acceptée par une vue servie sur un autre sous-domaine.</p>\n<p>Notez que la présence de ce réglage n’implique pas que la protection CSRF de Django soit assurée par défaut contre des attaques inter-sous-domaines ; consultez la section sur les <a class=\"reference internal\" href=\"/fr/6.1/ref/csrf/#csrf-limitations\"><span class=\"std std-ref\">limites de CSRF</span></a>.</p>\n</section>\n<section id=\"csrf-cookie-httponly\">\n<span id=\"std-setting-CSRF_COOKIE_HTTPONLY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_HTTPONLY</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-httponly\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique si le drapeau <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> doit être utilisé sur le cookie CSRF. Si ce paramètre est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le JavaScript côté client ne sera pas en mesure d’accéder au cookie CSRF.</p>\n<p>Le fait de marquer le cookie CSRF comme <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> n’ajoute pas de protection réelle car le mécanisme CSRF ne sert qu’à protéger contre les attaques inter-domaines. Si un attaquant peut lire le cookie par JavaScript, il se trouve déjà sur le même domaine dans la perspective du navigateur, il est donc déjà en mesure de faire tout ce qu’il veut (la vulnérabilité XSS est bien plus grave que CSRF).</p>\n<p>Même si ce réglage n’offre que peu de bénéfice réel, il est parfois requis par certains audits de sécurité.</p>\n<p>Si vous activez ceci et que vous avez besoin d’envoyer la valeur du jeton CSRF à partir d’une requête AJAX, votre code JavaScript devra obtenir la valeur <a class=\"reference internal\" href=\"/fr/6.1/howto/csrf/#acquiring-csrf-token-from-html\"><span class=\"std std-ref\">à partir d’un composant de formulaire caché contenant le jeton CSRF</span></a> dans la page au lieu de <a class=\"reference internal\" href=\"/fr/6.1/howto/csrf/#acquiring-csrf-token-from-cookie\"><span class=\"std std-ref\">l’obtenir par le cookie</span></a>.</p>\n<p>Voir <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code></a> pour plus de détails sur <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code>.</p>\n</section>\n<section id=\"csrf-cookie-name\">\n<span id=\"std-setting-CSRF_COOKIE_NAME\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_NAME</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-name\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :: <code class=\"docutils literal notranslate\"><span class=\"pre\">'csrftoken'</span></code></p>\n<p>Le nom du cookie à utiliser pour le jeton d’authentification CSRF. Vous pouvez y mettre ce qui vous plaît (tant que c’est un nom de cookie différent de ceux qui existent déjà). Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/csrf/\"><span class=\"doc\">Protection contre le « Cross site request forgery » (CSRF)</span></a>.</p>\n</section>\n<section id=\"csrf-cookie-path\">\n<span id=\"std-setting-CSRF_COOKIE_PATH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_PATH</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-path\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'/'</span></code></p>\n<p>Le chemin défini dans le cookie CSRF. Cela devrait correspondre au chemin d’URL de votre installation Django ou être un parent de ce chemin.</p>\n<p>C’est utile lorsque vous avez plusieurs instances Django fonctionnant sous le même nom d’hôte. Elles peuvent alors utiliser des chemins de cookie différents et chaque instance ne verra que ses propres cookies CSRF.</p>\n</section>\n<section id=\"csrf-cookie-samesite\">\n<span id=\"std-setting-CSRF_COOKIE_SAMESITE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SAMESITE</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-samesite\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'Lax'</span></code></p>\n<p>La valeur de l’option <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value\">SameSite</a> du cookie CSRF. Cette option empêche le cookie d’être envoyé dans les requêtes inter-sites.</p>\n<p>Voir <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_SAMESITE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SAMESITE</span></code></a> pour plus de détails sur <code class=\"docutils literal notranslate\"><span class=\"pre\">SameSite</span></code>.</p>\n</section>\n<section id=\"csrf-cookie-secure\">\n<span id=\"std-setting-CSRF_COOKIE_SECURE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SECURE</span></code><a class=\"heading-anchor\" href=\"#csrf-cookie-secure\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il est nécessaire d’utiliser un cookie sécurisé pour le cookie CSRF. Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le cookie sera marqué comme « sécurisé », ce qui signifie que les navigateurs sont chargés de vérifier que le cookie n’est envoyé que pour des connexions HTTPS.</p>\n</section>\n<section id=\"csrf-use-sessions\">\n<span id=\"std-setting-CSRF_USE_SESSIONS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code><a class=\"heading-anchor\" href=\"#csrf-use-sessions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il faut stocker le jeton CSRF dans la session de l’utilisateur plutôt que dans un cookie. Cela nécessite la présence de <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/#module-django.contrib.sessions\" title=\"django.contrib.sessions: Provides session management for Django projects.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions</span></code></a>.</p>\n<p>Le stockage du jeton CSRF dans un cookie (comportement par défaut de Django) est sûr, mais son stockage dans la session est une pratique courante dans d’autres cadriciels web et est donc parfois demandé par certains audits de sécurité.</p>\n<p>Comme les <a class=\"reference internal\" href=\"/fr/6.1/ref/views/#error-views\"><span class=\"std std-ref\">vues d’erreur par défaut</span></a> exigent le jeton CSRF, <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code></a> doit apparaître dans <a class=\"reference internal\" href=\"#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> avant tout intergiciel pouvant générer une exception déclenchant une vue d’erreur (comme par exemple <a class=\"reference internal\" href=\"/fr/6.1/ref/exceptions/#django.core.exceptions.PermissionDenied\" title=\"django.core.exceptions.PermissionDenied\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">PermissionDenied</span></code></a>) dans le cas où vous utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code>. Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#middleware-ordering\"><span class=\"std std-ref\">Ordre des intergiciels</span></a>.</p>\n</section>\n<section id=\"csrf-failure-view\">\n<span id=\"std-setting-CSRF_FAILURE_VIEW\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_FAILURE_VIEW</span></code><a class=\"heading-anchor\" href=\"#csrf-failure-view\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.views.csrf.csrf_failure'</span></code></p>\n<p>Un chemin pointé vers la fonction Vue à utiliser lorsqu’une requête entrante est rejetée par la <a class=\"reference internal\" href=\"/fr/6.1/ref/csrf/\"><span class=\"doc\">protection CSRF</span></a>. La fonction doit avoir cette signature :</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=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">csrf_failure</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">reason</span><span class=\"o\">=</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>où <code class=\"docutils literal notranslate\"><span class=\"pre\">reason</span></code> est un bref message (à l’intention des développeurs ou de la journalisation, par pour les utilisateurs finaux) indiquant la raison du rejet de la requête. Elle devrait renvoyer une réponse <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpResponseForbidden\" title=\"django.http.HttpResponseForbidden\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseForbidden</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.csrf.csrf_failure()</span></code> accepte un paramètre supplémentaire <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> qui vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">'403_csrf.html'</span></code> par défaut. Si un gabarit de ce nom existe, il sera utilisé pour produire la page.</p>\n</section>\n<section id=\"csrf-header-name\">\n<span id=\"std-setting-CSRF_HEADER_NAME\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_HEADER_NAME</span></code><a class=\"heading-anchor\" href=\"#csrf-header-name\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'HTTP_X_CSRFTOKEN'</span></code></p>\n<p>Le nom de l’en-tête de requête utilisé pour l’authentification CSRF.</p>\n<p>Comme avec d’autres en-têtes HTTP dans <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META</span></code>, le nom d’en-tête reçu du serveur est normalisé en convertissant tous les caractères en majuscules, remplaçant les tirets par des soulignements et en ajoutant un préfixe <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_</span></code> au nom. Par exemple, si un client envoie un en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">'X-XSRF-TOKEN'</span></code>, le réglage devrait être <code class=\"docutils literal notranslate\"><span class=\"pre\">'HTTP_X_XSRF_TOKEN'</span></code>.</p>\n</section>\n<section id=\"csrf-trusted-origins\">\n<span id=\"std-setting-CSRF_TRUSTED_ORIGINS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_TRUSTED_ORIGINS</span></code><a class=\"heading-anchor\" href=\"#csrf-trusted-origins\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste d’origines de confiance pour les types de requêtes non sûres (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code>).</p>\n<p>Pour les requêtes qui comprennent l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Origin</span></code>, la protection CSRF de Django exige que cet en-tête corresponde à l’origine présente dans l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code>.</p>\n<p>For a secure (determined by <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest.is_secure\" title=\"django.http.HttpRequest.is_secure\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_secure()</span></code></a>) unsafe\nrequest that doesn’t include the <code class=\"docutils literal notranslate\"><span class=\"pre\">Origin</span></code> header, the request must include a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code> header that matches the origin in the <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> header.</p>\n<p>Ces contrôles empêchent par exemple une requête <code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code> provenant de <code class=\"docutils literal notranslate\"><span class=\"pre\">subdomain.example.com</span></code> d’aboutir sur le site <code class=\"docutils literal notranslate\"><span class=\"pre\">api.example.com</span></code>. Si vous avez besoin de requêtes non sûres d’origine croisée, en continuant sur cet exemple, ajoutez <code class=\"docutils literal notranslate\"><span class=\"pre\">'https://subdomain.example.com'</span></code> à cette liste (ou avec <code class=\"docutils literal notranslate\"><span class=\"pre\">http://...</span></code> si les requêtes proviennent d’une page non sécurisée).</p>\n<p>Le réglage prend aussi en charge les sous-domaines, ce qui permet d’indiquer par exemple <code class=\"docutils literal notranslate\"><span class=\"pre\">'https://*.exemple.com'</span></code> pour autoriser l’accès à tous les sous-domaines de <code class=\"docutils literal notranslate\"><span class=\"pre\">exemple.com</span></code>.</p>\n</section>\n<section id=\"databases\">\n<span id=\"std-setting-DATABASES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code><a class=\"heading-anchor\" href=\"#databases\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code> (dictionnaire vide)</p>\n<p>Un dictionnaire contenant les réglages de toutes les bases de données à utiliser avec Django. C’est un dictionnaire imbriqué dont les contenus font correspondre l’alias de base de données avec un dictionnaire contenant les options de chacune des bases de données.</p>\n<p>Le réglage <a class=\"reference internal\" href=\"#std-setting-DATABASES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code></a> doit configurer une base de données <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code>; il est possible de définir autant de bases de données que nécessaire.</p>\n<p>Le fichier de réglages le plus simple possible est destiné à une configuration à base de données unique utilisant le moteur SQLite. Cela peut être configuré de cette façon :</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=\"n\">DATABASES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;ENGINE&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.db.backends.sqlite3&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;NAME&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mydatabase&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Lors de la connexion à d’autres moteurs de base de données, tels que MariaDB, MySQL, Oracle ou PostgreSQL, des paramètres de connexion supplémentaires sont requis. Voir le réglage <a class=\"reference internal\" href=\"#std-setting-DATABASE-ENGINE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ENGINE</span></code></a> ci-dessous sur la façon de spécifier d’autres types de bases de données. Cet exemple vaut pour PostgreSQL :</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=\"n\">DATABASES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;ENGINE&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.db.backends.postgresql&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;NAME&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mydatabase&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;USER&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mydatabaseuser&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;PASSWORD&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mypassword&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;HOST&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;127.0.0.1&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;PORT&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;5432&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Les options internes suivantes, qui peuvent être nécessaires pour des configurations plus complexes, sont disponibles :</p>\n<section id=\"atomic-requests\">\n<span id=\"std-setting-DATABASE-ATOMIC_REQUESTS\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ATOMIC_REQUESTS</span></code><a class=\"heading-anchor\" href=\"#atomic-requests\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Définissez ce réglage à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> pour envelopper chaque vue dans une transaction sur cette base de données. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/db/transactions/#tying-transactions-to-http-requests\"><span class=\"std std-ref\">Couplage des transactions aux requêtes HTTP</span></a>.</p>\n</section>\n<section id=\"autocommit\">\n<span id=\"std-setting-DATABASE-AUTOCOMMIT\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">AUTOCOMMIT</span></code><a class=\"heading-anchor\" href=\"#autocommit\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Définissez ce réglage à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> si vous souhaitez <a class=\"reference internal\" href=\"/fr/6.1/topics/db/transactions/#deactivate-transaction-management\"><span class=\"std std-ref\">désactiver la gestion des transactions de Django</span></a> et implémenter la vôtre.</p>\n</section>\n<section id=\"engine\">\n<span id=\"std-setting-DATABASE-ENGINE\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ENGINE</span></code><a class=\"heading-anchor\" href=\"#engine\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Le moteur de base de données à utiliser. Les moteurs de base de données intégrés à Django sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.db.backends.postgresql'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.db.backends.mysql'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.db.backends.sqlite3'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.db.backends.oracle'</span></code></p></li>\n</ul>\n<p>Vous pouvez utiliser un moteur de base de données non livré avec Django en définissant <code class=\"docutils literal notranslate\"><span class=\"pre\">ENGINE</span></code> à un chemin complètement qualifié d’une classe de moteur de base de données (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">monpaquet.moteurs.quelquechose</span></code>).</p>\n</section>\n<section id=\"host\">\n<span id=\"std-setting-HOST\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">HOST</span></code><a class=\"heading-anchor\" href=\"#host\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>L’hôte à utiliser lors de la connexion à la base de données. Une chaîne vide signifie <code class=\"docutils literal notranslate\"><span class=\"pre\">localhost</span></code>. Non utilisé avec SQLite.</p>\n<p>Si cette valeur commence par une barre oblique (<code class=\"docutils literal notranslate\"><span class=\"pre\">'/'</span></code>)  et que vous utilisez MySQL, MySQL se connectera par un connecteur Unix au connecteur indiqué. 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=\"s2\">&quot;HOST&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/var/run/mysql&quot;</span>\n</code></pre></div>\n<p>Si vous utilisez MySQL et que cette valeur ne commence <em>pas</em> par une barre oblique, Django part du principe que la valeur est un hôte.</p>\n<p>Si vous utilisez PostgreSQL, par défaut (<a class=\"reference internal\" href=\"#std-setting-HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">HOST</span></code></a> vide), la connexion à la base de données se fait au travers de connecteurs Unix (lignes « local » dans <code class=\"docutils literal notranslate\"><span class=\"pre\">pg_hba.conf</span></code>). Si votre connecteur de domaine UNIX n’est pas à l’emplacement standard, utilisez la même valeur <code class=\"docutils literal notranslate\"><span class=\"pre\">unix_socket_directory</span></code> que celle de <code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql.conf</span></code>. Si vous préférez vous connecter via des connecteurs TCP, définissez <a class=\"reference internal\" href=\"#std-setting-HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">HOST</span></code></a> à « localhost » ou « 127.0.0.1 » (lignes « host » dans <code class=\"docutils literal notranslate\"><span class=\"pre\">pg_hba.conf</span></code>). Sous Windows, vous devez toujours définir <a class=\"reference internal\" href=\"#std-setting-HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">HOST</span></code></a>, car les connecteurs de domaine Unix ne sont pas disponibles.</p>\n</section>\n<section id=\"name\">\n<span id=\"std-setting-NAME\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">NAME</span></code><a class=\"heading-anchor\" href=\"#name\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Le nom de la base de données à utiliser. Pour SQLite, c’est le chemin complet vers le fichier de la base de données. Quand un chemin est indiqué, utilisez toujours des barres obliques vers l’avant, même sur Windows (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">C:/homes/user/mysite/sqlite3.db</span></code>).</p>\n</section>\n<section id=\"conn-max-age\">\n<span id=\"std-setting-CONN_MAX_AGE\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">CONN_MAX_AGE</span></code><a class=\"heading-anchor\" href=\"#conn-max-age\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code></p>\n<p>La durée de vie d’une connexion de base de données, en nombre entier de secondes. Utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code> pour fermer les connexions de base de données à la fin de chaque requête – comportement historique de Django – et <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour les <a class=\"reference internal\" href=\"/fr/6.1/ref/databases/#persistent-database-connections\"><span class=\"std std-ref\">connexions persistantes illimitées</span></a>.</p>\n</section>\n<section id=\"conn-health-checks\">\n<span id=\"std-setting-CONN_HEALTH_CHECKS\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">CONN_HEALTH_CHECKS</span></code><a class=\"heading-anchor\" href=\"#conn-health-checks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, l’état des <a class=\"reference internal\" href=\"/fr/6.1/ref/databases/#persistent-database-connections\"><span class=\"std std-ref\">connexions persistantes aux bases de données</span></a> sera contrôlé avant chaque réutilisation pour l’interrogation de la base de données. Si ce contrôle échoue, la connexion sera réétablie sans que la requête d’interrogation n’échoue dans le cas où la connexion n’est plus utilisable, mais que le serveur de base de données est prêt à accepter et servir de nouvelles connexions (par ex. après qu’un redémarrage de la base de données a fermé les connexions existantes).</p>\n</section>\n<section id=\"std-setting-OPTIONS\">\n<span id=\"id1\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code><a class=\"heading-anchor\" href=\"#std-setting-OPTIONS\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code> (dictionnaire vide)</p>\n<p>Des paramètres supplémentaires à utiliser lors de la connexion à la base de données. Les paramètres disponibles varient en fonction du moteur de base de données.</p>\n<p>Certaines informations sur les paramètres disponibles peuvent être trouvées dans la documentation des <a class=\"reference internal\" href=\"/fr/6.1/ref/databases/\"><span class=\"doc\">moteurs de base de données</span></a>. Pour plus d’informations, consultez la documentation propre au module du moteur utilisé.</p>\n</section>\n<section id=\"password\">\n<span id=\"std-setting-PASSWORD\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD</span></code><a class=\"heading-anchor\" href=\"#password\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Le mot de passe à utiliser lors de la connexion à la base de données. Non utilisé avec SQLite.</p>\n</section>\n<section id=\"port\">\n<span id=\"std-setting-PORT\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">PORT</span></code><a class=\"heading-anchor\" href=\"#port\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Le port à utiliser lors de la connexion à la base de données. Une chaîne vide signifie le port par défaut. Non utilisé avec SQLite.</p>\n</section>\n<section id=\"time-zone\">\n<span id=\"std-setting-DATABASE-TIME_ZONE\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code><a class=\"heading-anchor\" href=\"#time-zone\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Une chaîne représentant le fuseau horaire de cette connexion de base de données ou <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>. Cette option interne au réglage <a class=\"reference internal\" href=\"#std-setting-DATABASES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code></a> accepte les mêmes valeurs que le réglage général <a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a>.</p>\n<p>Lorsque setting:USE_TZ vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, la lecture de dates/heures de la base de données renvoie des dates/heures conscientes avec leur fuseau horaire défini à la valeur de cette option si différente de <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, ou à <code class=\"docutils literal notranslate\"><span class=\"pre\">UTC</span></code> dans le cas contraire.</p>\n<p>Lorsque <a class=\"reference internal\" href=\"#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, la définition de cette option produit une erreur.</p>\n<ul>\n<li><p>Si le moteur de base de données ne gère pas les fuseaux horaires (par ex. SQLite, MySQL, Oracle), Django lit et écrit les dates/heures en heure locale en fonction de cette option quand elle est définie et en UTC si elle ne l’est pas.</p>\n<p>La modification du fuseau horaire de la connexion modifie la manière dont les dates/heures sont lues et écrites dans la base de données.</p>\n<ul class=\"simple\">\n<li><p>Si Django gère la base de données et que vous n’avez pas de forte raison de faire autrement, vous devriez laisser cette option non définie. Il est préférable de stocker les dates/heures en UTC car cela évite des dates/heures ambiguës ou inexistantes dans les passages heure d’été/heure d’hiver. De plus, la manipulation de dates/heures en UTC présente une arithmétique simple, sans avoir besoin de considérer les modifications potentielles de décalages lors d’une transition d’heure d’été/hiver.</p></li>\n<li><p>Si vous vous connectez à une base de données externe qui stocke les dates/heures en temps locale plutôt qu’en UTC, vous devez définir cette option au fuseau horaire adéquat. De même, si Django gère la base de données mais que des systèmes externes se connectent à cette même base de données en espérant y trouver des dates/heures en temps local, vous devez définir cette option.</p></li>\n</ul>\n</li>\n<li><p>Si le moteur de base de données prend en charge les fuseaux horaires (par ex. PostgreSQL), le fuseau horaire de la connexion de base de données est défini à cette valeur.</p>\n<p>Même s’il est rarement utile de définir l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code>, il y a des situations ou cela devient nécessaire. En particulier, il est recommandé de correspondre au réglage général <a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a> lorsqu’on manipule  des requêtes brutes impliquant des fonctions date/heure comme <code class=\"docutils literal notranslate\"><span class=\"pre\">date_trunc()</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">generate_series()</span></code> dans PostgreSQL, particulièrement lors de génération de séries temporelles qui traversent des transitions d’heure d’été/hiver.</p>\n<p>Cette valeur peut être modifiée à tout moment, la base de données se charge de la conversion des dates/heures vers le fuseau horaire configuré.</p>\n<p>Cependant, le revers de la médaille est que l’obtention de toutes les dates/heures en temps local fait appel à une arithmétique plus compliquée, vous devez tenir compte de possibles modifications de décalages lors de transitions d’heure d’été/hiver.</p>\n<p>Envisagez de convertir explicitement en temps local avec <code class=\"docutils literal notranslate\"><span class=\"pre\">AT</span> <span class=\"pre\">TIME</span> <span class=\"pre\">ZONE</span></code> dans les requêtes SQL brutes plutôt que de définir l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code>.</p>\n</li>\n</ul>\n</section>\n<section id=\"disable-server-side-cursors\">\n<span id=\"std-setting-DATABASE-DISABLE_SERVER_SIDE_CURSORS\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DISABLE_SERVER_SIDE_CURSORS</span></code><a class=\"heading-anchor\" href=\"#disable-server-side-cursors\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Définissez ce réglage à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> si vous souhaitez désactiver l’utilisation de curseurs côté serveur avec <a class=\"reference internal\" href=\"/fr/6.1/ref/models/querysets/#django.db.models.query.QuerySet.iterator\" title=\"django.db.models.query.QuerySet.iterator\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.iterator()</span></code></a>. <a class=\"reference internal\" href=\"/fr/6.1/ref/databases/#transaction-pooling-server-side-cursors\"><span class=\"std std-ref\">Transactions groupées et curseurs côté serveur</span></a> explique le cas d’utilisation.</p>\n<p>Ce réglage est spécifique à PostgreSQL.</p>\n</section>\n<section id=\"user\">\n<span id=\"std-setting-USER\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">USER</span></code><a class=\"heading-anchor\" href=\"#user\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Le nom d’utilisateur à utiliser lors de la connexion à la base de données. Non utilisé avec SQLite.</p>\n</section>\n<section id=\"test\">\n<span id=\"std-setting-DATABASE-TEST\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">TEST</span></code><a class=\"heading-anchor\" href=\"#test\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code> (dictionnaire vide)</p>\n<p>Un dictionnaire de réglages pour les bases de données de test ; pour plus de détails sur la création et l’utilisation de bases de données de test, voir <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/overview/#the-test-database\"><span class=\"std std-ref\">La base de données de test</span></a>.</p>\n<p>Voici un exemple avec une configuration de base de données de test :</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=\"n\">DATABASES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;ENGINE&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.db.backends.postgresql&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;USER&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mydatabaseuser&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;NAME&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mydatabase&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;TEST&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;NAME&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;mytestdatabase&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Les clés suivantes sont disponibles dans le dictionnaire <code class=\"docutils literal notranslate\"><span class=\"pre\">TEST</span></code>:</p>\n<section id=\"charset\">\n<span id=\"std-setting-TEST_CHARSET\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">CHARSET</span></code><a class=\"heading-anchor\" href=\"#charset\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le codage de caractères utilisé pour créer la base de données de test. La valeur de cette chaîne est passée directement à la base de données, son format est donc dépendant du moteur.</p>\n<p>Pris en charge par les moteurs <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/multibyte.html\">PostgreSQL</a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql</span></code>) et <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/charset-charsets.html\">MySQL</a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">mysql</span></code>).</p>\n</section>\n<section id=\"collation\">\n<span id=\"std-setting-TEST_COLLATION\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">COLLATION</span></code><a class=\"heading-anchor\" href=\"#collation\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>L’ordre de collation à utiliser lors de la création de la base de données de test. Cette value est directement transmise au moteur, son format est donc spécifique au moteur.</p>\n<p>Pris en charge uniquement pour le moteur <code class=\"docutils literal notranslate\"><span class=\"pre\">mysql</span></code> (consultez le <a class=\"reference external\" href=\"https://dev.mysql.com/doc/refman/en/charset-charsets.html\">manuel de MySQL</a> pour plus de  détails).</p>\n</section>\n<section id=\"dependencies\">\n<span id=\"std-setting-TEST_DEPENDENCIES\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DEPENDENCIES</span></code><a class=\"heading-anchor\" href=\"#dependencies\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">['default']</span></code>, pour toutes les bases de données, excepté <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> qui n’a pas de dépendances.</p>\n<p>Les dépendances d’ordre de création de la base de données. Consultez la documentation sur le <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/advanced/#topics-testing-creation-dependencies\"><span class=\"std std-ref\">contrôle de l’ordre de création des bases de données de test</span></a> pour plus de détails.</p>\n</section>\n<section id=\"migrate\">\n<span id=\"std-setting-TEST_MIGRATE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">MIGRATE</span></code><a class=\"heading-anchor\" href=\"#migrate\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Si définie à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, les migrations ne s’exécuteront pas lors de la création de la base de données de test. C’est équivalent à définir <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> comme valeur dans <a class=\"reference internal\" href=\"#std-setting-MIGRATION_MODULES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIGRATION_MODULES</span></code></a>, mais pour toutes les applications.</p>\n</section>\n<section id=\"mirror\">\n<span id=\"std-setting-TEST_MIRROR\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">MIRROR</span></code><a class=\"heading-anchor\" href=\"#mirror\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>L’alias de base de données qui devra constituer le miroir de cette base de données durant les tests. Il y a dépendance des transactions, ce qui implique qu’il faut utiliser  <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/tools/#django.test.TransactionTestCase\" title=\"django.test.TransactionTestCase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TransactionTestCase</span></code></a> au lieu de <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/tools/#django.test.TestCase\" title=\"django.test.TestCase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TestCase</span></code></a>.</p>\n<p>Ce réglage existe pour permettre de tester des configurations primaire/réplique (aussi appelées maître-esclaves par certaines bases de données) de plusieurs bases de données. Consultez la documentation sur le <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/advanced/#topics-testing-primaryreplica\"><span class=\"std std-ref\">test de configurations primaire/réplique</span></a> pour plus de détails.</p>\n</section>\n<section id=\"std-setting-TEST_NAME\">\n<span id=\"id2\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">NAME</span></code><a class=\"heading-anchor\" href=\"#std-setting-TEST_NAME\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le nom de la base de données à utiliser lors du fonctionnement de la suite de tests.</p>\n<p>Si la valeur par défaut (<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>) est utilisée avec le moteur de base de données SQLite, les tests utiliseront une base de données en mémoire vive. Pour tous les autres moteurs de base de données, la base de données de test sera nommée <code class=\"docutils literal notranslate\"><span class=\"pre\">'test_'</span> <span class=\"pre\">+</span> <span class=\"pre\">DATABASE_NAME</span></code>.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/overview/#the-test-database\"><span class=\"std std-ref\">La base de données de test</span></a>.</p>\n</section>\n<section id=\"template\">\n<span id=\"std-setting-TEST_TEMPLATE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE</span></code><a class=\"heading-anchor\" href=\"#template\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Ce réglage est spécifique à PostgreSQL.</p>\n<p>Le nom d’un <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createdatabase.html\">modèle</a> (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">'template0'</span></code>) à partir duquel la base de données de test est créée.</p>\n</section>\n<section id=\"create-db\">\n<span id=\"std-setting-TEST_CREATE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">CREATE_DB</span></code><a class=\"heading-anchor\" href=\"#create-db\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>S’il est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, l’espace de tables de test ne sera pas automatiquement créé au début des tests, ni supprimé à la fin.</p>\n</section>\n<section id=\"create-user\">\n<span id=\"std-setting-TEST_USER_CREATE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">CREATE_USER</span></code><a class=\"heading-anchor\" href=\"#create-user\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, l’utilisateur test ne sera pas automatiquement créé au début des tests, ni supprimé à la fin.</p>\n</section>\n<section id=\"std-setting-TEST_USER\">\n<span id=\"id4\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">USER</span></code><a class=\"heading-anchor\" href=\"#std-setting-TEST_USER\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Le nom d’utilisateur à utiliser lors de la connexion à la base de données Oracle durant les tests. Si non fourni, Django utilise <code class=\"docutils literal notranslate\"><span class=\"pre\">'test_'</span> <span class=\"pre\">+</span> <span class=\"pre\">USER</span></code>.</p>\n</section>\n<section id=\"std-setting-TEST_PASSWD\">\n<span id=\"id5\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD</span></code><a class=\"heading-anchor\" href=\"#std-setting-TEST_PASSWD\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Le mot de passe à utiliser lors de la connexion à la base de données Oracle durant les tests. Si non fourni, Django génère un mot de passe aléatoire.</p>\n</section>\n<section id=\"oracle-managed-files\">\n<span id=\"std-setting-TEST_ORACLE_MANAGED_FILES\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">ORACLE_MANAGED_FILES</span></code><a class=\"heading-anchor\" href=\"#oracle-managed-files\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, des espaces de tables Oracle Managed Files (OMF) sont utilisées. <a class=\"reference internal\" href=\"#std-setting-DATAFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATAFILE</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-DATAFILE_TMP\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATAFILE_TMP</span></code></a> seront ignorés.</p>\n</section>\n<section id=\"tblspace\">\n<span id=\"std-setting-TEST_TBLSPACE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">TBLSPACE</span></code><a class=\"heading-anchor\" href=\"#tblspace\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Le nom de l’espace de tables utilisé lors des tests. Si non fourni, Django utilise <code class=\"docutils literal notranslate\"><span class=\"pre\">'test_'</span> <span class=\"pre\">+</span> <span class=\"pre\">USER</span></code>.</p>\n</section>\n<section id=\"tblspace-tmp\">\n<span id=\"std-setting-TEST_TBLSPACE_TMP\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">TBLSPACE_TMP</span></code><a class=\"heading-anchor\" href=\"#tblspace-tmp\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Le nom de l’espace de tables temporaire utilisé lors des tests. Si non fourni, Django utilise <code class=\"docutils literal notranslate\"><span class=\"pre\">'test_'</span> <span class=\"pre\">+</span> <span class=\"pre\">USER</span> <span class=\"pre\">+</span> <span class=\"pre\">'_temp'</span></code>.</p>\n</section>\n<section id=\"datafile\">\n<span id=\"std-setting-DATAFILE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE</span></code><a class=\"heading-anchor\" href=\"#datafile\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Le nom du fichier de données à utiliser pour TBLSPACE. Si non fourni, Django utilise <code class=\"docutils literal notranslate\"><span class=\"pre\">TBLSPACE</span> <span class=\"pre\">+</span> <span class=\"pre\">'.dbf'</span></code>.</p>\n</section>\n<section id=\"datafile-tmp\">\n<span id=\"std-setting-DATAFILE_TMP\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_TMP</span></code><a class=\"heading-anchor\" href=\"#datafile-tmp\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>Le nom du fichier de données à utiliser pour TBLSPACE_TMP. Si non fourni, Django utilise <code class=\"docutils literal notranslate\"><span class=\"pre\">TBLSPACE_TMP</span> <span class=\"pre\">+</span> <span class=\"pre\">'.dbf'</span></code>.</p>\n</section>\n<section id=\"datafile-maxsize\">\n<span id=\"std-setting-DATAFILE_MAXSIZE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_MAXSIZE</span></code><a class=\"heading-anchor\" href=\"#datafile-maxsize\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'500M'</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>La taille maximale que DATAFILE est autorisé à atteindre.</p>\n</section>\n<section id=\"datafile-tmp-maxsize\">\n<span id=\"std-setting-DATAFILE_TMP_MAXSIZE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_TMP_MAXSIZE</span></code><a class=\"heading-anchor\" href=\"#datafile-tmp-maxsize\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'500M'</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>La taille maximale que DATAFILE_TMP est autorisé à atteindre.</p>\n</section>\n<section id=\"datafile-size\">\n<span id=\"std-setting-DATAFILE_SIZE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_SIZE</span></code><a class=\"heading-anchor\" href=\"#datafile-size\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'50M'</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>La taille initiale du fichier DATAFILE.</p>\n</section>\n<section id=\"datafile-tmp-size\">\n<span id=\"std-setting-DATAFILE_TMP_SIZE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_TMP_SIZE</span></code><a class=\"heading-anchor\" href=\"#datafile-tmp-size\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'50M'</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>La taille initiale du fichier DATAFILE_TMP.</p>\n</section>\n<section id=\"datafile-extsize\">\n<span id=\"std-setting-DATAFILE_EXTSIZE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_EXTSIZE</span></code><a class=\"heading-anchor\" href=\"#datafile-extsize\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'25M'</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>La taille d’extension du fichier DATAFILE lorsque plus d’espace est nécessaire.</p>\n</section>\n<section id=\"datafile-tmp-extsize\">\n<span id=\"std-setting-DATAFILE_TMP_EXTSIZE\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">DATAFILE_TMP_EXTSIZE</span></code><a class=\"heading-anchor\" href=\"#datafile-tmp-extsize\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'25M'</span></code></p>\n<p>Ce paramètre est spécifique à Oracle.</p>\n<p>La taille d’extension du fichier DATAFILE_TMP lorsque plus d’espace est nécessaire.</p>\n</section>\n</section>\n</section>\n<section id=\"data-upload-max-memory-size\">\n<span id=\"std-setting-DATA_UPLOAD_MAX_MEMORY_SIZE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_MEMORY_SIZE</span></code><a class=\"heading-anchor\" href=\"#data-upload-max-memory-size\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">2621440</span></code> (c-à-d. 2.5 Mio).</p>\n<p>La taille maximale en octets d’un corps de requête avant qu’il ne provoque une exception <a class=\"reference internal\" href=\"/fr/6.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">SuspiciousOperation</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">RequestDataTooBig</span></code>). Le contrôle est effectué lors de l’accès à <code class=\"docutils literal notranslate\"><span class=\"pre\">request.body</span></code> ou à <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> et est calculé par rapport à la taille totale de la requête sans les données d’envoi de fichiers (<code class=\"docutils literal notranslate\"><span class=\"pre\">request.FILES</span></code>). Vous pouvez le définir à <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour désactiver le contrôle. Les applications susceptibles de recevoir des envois de formulaires inhabituellement volumineux devraient ajuster ce réglage.</p>\n<p>Under ASGI, the entire request may be spooled to disk before this limit is\nenforced. Therefore, it is strongly recommended to place additional protections\nin front of Django which limit the entire request payload.</p>\n<p>La quantité de données de requête est corrélée à la quantité de mémoire ou de stockage nécessaire pour traiter la requête et remplir les dictionnaires GET et POST. Les grosses requêtes pourraient être utilisées comme vecteur d’attaque par déni de service si elles n’étaient pas contrôlées. Comme les serveurs web n’effectuent en principe pas d’inspection approfondie des requêtes, il n’est pas possible de procéder à ce genre de contrôle à leur niveau.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_MAX_MEMORY_SIZE</span></code></a>.</p>\n</section>\n<section id=\"data-upload-max-number-fields\">\n<span id=\"std-setting-DATA_UPLOAD_MAX_NUMBER_FIELDS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_NUMBER_FIELDS</span></code><a class=\"heading-anchor\" href=\"#data-upload-max-number-fields\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">1000</span></code></p>\n<p>Le nombre maximum de paramètres pouvant être reçus via GET ou POST avant qu’une exception <a class=\"reference internal\" href=\"/fr/6.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">SuspiciousOperation</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">TooManyFields</span></code>) soit générée. Vous pouvez le définir à <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour désactiver le contrôle. Les applications susceptibles de recevoir un nombre inhabituellement grand de champs de formulaire devraient ajuster ce réglage.</p>\n<p>Le nombre de paramètres de requête est corrélé à la quantité de temps nécessaire pour traiter la requête et remplir les dictionnaires GET et POST. Les grosses requêtes pourraient être utilisées comme vecteur d’attaque par déni de service si elles n’étaient pas contrôlées. Comme les serveurs web n’effectuent en principe pas d’inspection approfondie des requêtes, il n’est pas possible de procéder à ce genre de contrôle à leur niveau.</p>\n</section>\n<section id=\"data-upload-max-number-files\">\n<span id=\"std-setting-DATA_UPLOAD_MAX_NUMBER_FILES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_NUMBER_FILES</span></code><a class=\"heading-anchor\" href=\"#data-upload-max-number-files\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">100</span></code></p>\n<p>Le nombre maximum de fichiers pouvant être reçus via POST dans une requête codée en <code class=\"docutils literal notranslate\"><span class=\"pre\">multipart/form-data</span></code> avant qu’une exception <a class=\"reference internal\" href=\"/fr/6.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">SuspiciousOperation</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">TooManyFiles</span></code>) soit générée. Vous pouvez le définir à <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour désactiver le contrôle. Les applications susceptibles de recevoir un nombre inhabituellement grand de champs fichiers devraient ajuster ce réglage.</p>\n<p>Le nombre de fichiers acceptés est corrélé à la quantité de temps et de mémoire nécessaire pour traiter la requête. Les grosses requêtes pourraient être utilisées comme vecteur d’attaque par déni de service si elles n’étaient pas contrôlées. Comme les serveurs web n’effectuent en principe pas d’inspection approfondie des requêtes, il n’est pas possible de procéder à ce genre de contrôle à leur niveau.</p>\n</section>\n<section id=\"database-routers\">\n<span id=\"std-setting-DATABASE_ROUTERS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATABASE_ROUTERS</span></code><a class=\"heading-anchor\" href=\"#database-routers\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>La liste des routeurs utilisés pour déterminer à quelle base de données il faut accéder lors de l’exécution d’une requête de base de données.</p>\n<p>Consultez la documentation sur le <a class=\"reference internal\" href=\"/fr/6.1/topics/db/multi-db/#topics-db-multi-db-routing\"><span class=\"std std-ref\">routage automatique des bases de données dans des configurations à plusieurs bases</span></a>.</p>\n</section>\n<section id=\"date-format\">\n<span id=\"std-setting-DATE_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code><a class=\"heading-anchor\" href=\"#date-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'N</span> <span class=\"pre\">j,</span> <span class=\"pre\">Y'</span></code> (ex . : <code class=\"docutils literal notranslate\"><span class=\"pre\">Feb.</span> <span class=\"pre\">4,</span> <span class=\"pre\">2003</span></code>)</p>\n<p>Le format par défaut pour l’affichage des champs dates dans les différentes parties du système. Notez que le format induit par la locale a une priorité plus élevée et remplacera ce format. Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-SHORT_DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"date-input-formats\">\n<span id=\"std-setting-DATE_INPUT_FORMATS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code><a class=\"heading-anchor\" href=\"#date-input-formats\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">[</span>\n    <span class=\"s2\">&quot;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;2006-10-25&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/2006&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/06&#39;</span>\n    <span class=\"s2\">&quot;%b </span><span class=\"si\">%d</span><span class=\"s2\"> %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;Oct 25 2006&#39;</span>\n    <span class=\"s2\">&quot;%b </span><span class=\"si\">%d</span><span class=\"s2\">, %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;Oct 25, 2006&#39;</span>\n    <span class=\"s2\">&quot;</span><span class=\"si\">%d</span><span class=\"s2\"> %b %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;25 Oct 2006&#39;</span>\n    <span class=\"s2\">&quot;</span><span class=\"si\">%d</span><span class=\"s2\"> %b, %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;25 Oct, 2006&#39;</span>\n    <span class=\"s2\">&quot;%B </span><span class=\"si\">%d</span><span class=\"s2\"> %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;October 25 2006&#39;</span>\n    <span class=\"s2\">&quot;%B </span><span class=\"si\">%d</span><span class=\"s2\">, %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;October 25, 2006&#39;</span>\n    <span class=\"s2\">&quot;</span><span class=\"si\">%d</span><span class=\"s2\"> %B %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;25 October 2006&#39;</span>\n    <span class=\"s2\">&quot;</span><span class=\"si\">%d</span><span class=\"s2\"> %B, %Y&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;25 October, 2006&#39;</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Une liste de formats qui seront acceptés lors de la saisie de données dans un champ date. Les formats seront testés dans l’ordre et le premier correspondant sera utilisé. Notez que ces chaînes de format utilisent la <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior\" title=\"(disponible dans Python v3.14)\"><span class=\"xref std std-ref\">syntaxe du module datetime</span></a> de Python, et non pas celle des chaînes de format du filtre de gabarit <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a>.</p>\n<p>Le format induit par la locale a une priorité plus élevée et remplace ce séparateur.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a>.</p>\n</section>\n<section id=\"datetime-format\">\n<span id=\"std-setting-DATETIME_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code><a class=\"heading-anchor\" href=\"#datetime-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'N</span> <span class=\"pre\">j,</span> <span class=\"pre\">Y,</span> <span class=\"pre\">P'</span></code> (ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">Feb.</span> <span class=\"pre\">4,</span> <span class=\"pre\">2003,</span> <span class=\"pre\">4</span> <span class=\"pre\">p.m.</span></code>)</p>\n<p>Le format par défaut pour l’affichage des champs dates/heures dans les différentes parties du système. Notez que le format induit par la locale a une priorité plus élevée et remplacera ce format. Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-SHORT_DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"datetime-input-formats\">\n<span id=\"std-setting-DATETIME_INPUT_FORMATS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code><a class=\"heading-anchor\" href=\"#datetime-input-formats\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">[</span>\n    <span class=\"s2\">&quot;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s2\"> %H:%M:%S&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;2006-10-25 14:30:59&#39;</span>\n    <span class=\"s2\">&quot;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s2\"> %H:%M:%S.</span><span class=\"si\">%f</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;2006-10-25 14:30:59.000200&#39;</span>\n    <span class=\"s2\">&quot;%Y-%m-</span><span class=\"si\">%d</span><span class=\"s2\"> %H:%M&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;2006-10-25 14:30&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%Y %H:%M:%S&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/2006 14:30:59&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%Y %H:%M:%S.</span><span class=\"si\">%f</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/2006 14:30:59.000200&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%Y %H:%M&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/2006 14:30&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%y %H:%M:%S&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/06 14:30:59&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%y %H:%M:%S.</span><span class=\"si\">%f</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/06 14:30:59.000200&#39;</span>\n    <span class=\"s2\">&quot;%m/</span><span class=\"si\">%d</span><span class=\"s2\">/%y %H:%M&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;10/25/06 14:30&#39;</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Une liste de formats qui seront acceptés lors de la saisie de données dans un champ date/heure. Les formats seront testés dans l’ordre et le premier correspondant sera utilisé. Notez que ces chaînes de format utilisent la <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior\" title=\"(disponible dans Python v3.14)\"><span class=\"xref std std-ref\">syntaxe du module datetime</span></a> de Python, et non pas celle des chaînes de format du filtre de gabarit <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a>. Les formats contenant uniquement la date ne sont pas inclus car les champs date/heure essaient automatiquement les formats <a class=\"reference internal\" href=\"#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> en dernier recours.</p>\n<p>Le format induit par la locale a une priorité plus élevée et remplace ce séparateur.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a>.</p>\n</section>\n<section id=\"debug\">\n<span id=\"std-setting-DEBUG\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code><a class=\"heading-anchor\" href=\"#debug\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Une valeur booléenne qui active ou désactive le mode de débogage.</p>\n<p>Ne déployez jamais de site en production avec le réglage <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> activé.</p>\n<p>L’une des fonctionnalités principales du mode de débogage est l’affichage de pages d’erreur détaillées. Si votre application lève une exception quand <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, Django affiche une trace détaillée, y compris de nombreuses métadonnées au sujet de votre environnement, comme par exemple la liste complète des réglages Django en vigueur (tirés de <code class=\"docutils literal notranslate\"><span class=\"pre\">settings.py</span></code>).</p>\n<p>Comme mesure de sécurité, Django n’affiche <em>pas</em> les réglages pouvant comporter des données sensibles, comme <a class=\"reference internal\" href=\"#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a>. Plus précisément, il exclut tout réglage dont le nom contient l’un des éléments suivants :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'API'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'KEY'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'PASS'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'SECRET'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'SIGNATURE'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'TOKEN'</span></code></p></li>\n</ul>\n<p>Notez qu’il s’agit de correspondances <em>partielles</em>. <code class=\"docutils literal notranslate\"><span class=\"pre\">'PASS'</span></code> va aussi intercepter PASSWORD, comme <code class=\"docutils literal notranslate\"><span class=\"pre\">'TOKEN'</span></code> interceptera TOKENIZED et ainsi de suite.</p>\n<p>Toutefois, notez qu’il y aura toujours des parties de l’affichage de débogage qui contiennent des éléments inappropriés pour le tout public. Des chemins de fichiers, des options de configuration et d’autres choses semblables peuvent tous donner à des attaquants des informations supplémentaires au sujet de votre serveur.</p>\n<p>Il est aussi important de se rappeler que lorsque un site fonctionne en mode <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a>, Django mémorise chaque requête SQL qu’il exécute. C’est utile lors de séances de débogage, mais cela va assez rapidement consommer beaucoup de mémoire sur un serveur de production.</p>\n<p>Enfin, si <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, vous devez également définir correctement le réglage <a class=\"reference internal\" href=\"#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a>. Sans cela, toutes les requêtes renverront l’erreur « Bad Request (400) ».</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Le fichier <code class=\"file docutils literal notranslate\"><span class=\"pre\">settings.py</span></code> créé par défaut par <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span></code></a> définit <code class=\"docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code> par commodité.</p>\n</aside>\n</section>\n<section id=\"debug-propagate-exceptions\">\n<span id=\"std-setting-DEBUG_PROPAGATE_EXCEPTIONS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEBUG_PROPAGATE_EXCEPTIONS</span></code><a class=\"heading-anchor\" href=\"#debug-propagate-exceptions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le traitement des exceptions par Django des fonctions de vue (<a class=\"reference internal\" href=\"/fr/6.1/ref/urls/#django.conf.urls.handler500\" title=\"django.conf.urls.handler500\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">handler500</span></code></a> ou la vue de débogage si <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>) ainsi que la journalisation des réponses 500 (<a class=\"reference internal\" href=\"/fr/6.1/ref/logging/#django-request-logger\"><span class=\"std std-ref\">django.request</span></a>) sont omis et les exceptions sont propagées vers le haut.</p>\n<p>Cela peut être utile dans certaines configurations de test. Ce ne devrait pas être utilisé pour un site en production sauf dans le cas où vous aimeriez que le serveur web génère lui-même les réponses « Internal Server Error » à la place de Django. Dans ce cas, veillez à ce que le serveur n’affiche pas la trace de débogage ou d’autres informations sensibles dans la réponse.</p>\n</section>\n<section id=\"decimal-separator\">\n<span id=\"std-setting-DECIMAL_SEPARATOR\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DECIMAL_SEPARATOR</span></code><a class=\"heading-anchor\" href=\"#decimal-separator\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'.'</span></code> (point)</p>\n<p>Séparateur décimal par défaut utilisé lors du formatage des nombres à virgule.</p>\n<p>Notez que le format induit par la locale a une priorité plus élevée et sera donc utilisé à la place.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-USE_THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span></code></a>.</p>\n</section>\n<section id=\"default-auto-field\">\n<span id=\"std-setting-DEFAULT_AUTO_FIELD\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_AUTO_FIELD</span></code><a class=\"heading-anchor\" href=\"#default-auto-field\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/models/fields/#django.db.models.BigAutoField\" title=\"django.db.models.BigAutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.BigAutoField</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p>\n<p>Type de champ clé primaire à utiliser par défaut pour les modèles n’ayant pas de champ avec <a class=\"reference internal\" href=\"/fr/6.1/ref/models/fields/#django.db.models.Field.primary_key\" title=\"django.db.models.Field.primary_key\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">primary_key=True</span></code></a>.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Dans les versions plus anciennes, la valeur par défaut était <a class=\"reference internal\" href=\"/fr/6.1/ref/models/fields/#django.db.models.AutoField\" title=\"django.db.models.AutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.AutoField</span></code></a>.</p>\n</aside>\n<aside class=\"admonition-migrating-auto-created-through-tables admonition\">\n<p class=\"admonition-title\">Migration des tables intermédiaires créées automatiquement</p>\n<p>La valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_AUTO_FIELD</span></code> sera respectée lors de la création de nouvelles tables intermédiaires créées automatiquement pour les relations plusieurs-à-plusieurs.</p>\n<p>Malheureusement, les clés primaires des tables intermédiaires existantes créées automatiquement ne peuvent actuellement pas être mises à jour par le système des migrations.</p>\n<p>Cela signifie que si vous modifiez la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_AUTO_FIELD</span></code>, puis que vous générez des migrations, les clés primaires des modèles liés seront mises à jour, comme pour les clés étrangères des tables intermédiaires, mais la clé primaire de ces tables intermédiaires ne seront pas migrées.</p>\n<p>Pour corrige cela, vous devez ajouter une opération <a class=\"reference internal\" href=\"/fr/6.1/ref/migration-operations/#django.db.migrations.operations.RunSQL\" title=\"django.db.migrations.operations.RunSQL\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RunSQL</span></code></a> à vos migrations pour effectuer l’étape <code class=\"docutils literal notranslate\"><span class=\"pre\">ALTER</span> <span class=\"pre\">TABLE</span></code> requise. Vous pouvez obtenir le nom de la table existante au moyen de  <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlmigrate</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">dbshell</span></code>, ou avec la propriété <code class=\"docutils literal notranslate\"><span class=\"pre\">remote_field.through._meta.db_table</span></code> du champ.</p>\n<p>Les modèles intermédiaires définis explicitement sont déjà pris en charge par le système des migrations.</p>\n<p>La migration automatique des clés primaires des tables intermédiaires existantes créées automatiquement <a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/32674\">pourrait être implémentée à une date ultérieure</a>.</p>\n</aside>\n</section>\n<section id=\"default-charset\">\n<span id=\"std-setting-DEFAULT_CHARSET\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code><a class=\"heading-anchor\" href=\"#default-charset\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'utf-8'</span></code></p>\n<p>Codage de caractères par défaut utilisé pour tous les objets <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> si un type MIME n’est pas manuellement indiqué. Utilisé pour construire l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code>.</p>\n</section>\n<section id=\"default-exception-reporter\">\n<span id=\"std-setting-DEFAULT_EXCEPTION_REPORTER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_EXCEPTION_REPORTER</span></code><a class=\"heading-anchor\" href=\"#default-exception-reporter\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/howto/error-reporting/#django.views.debug.ExceptionReporter\" title=\"django.views.debug.ExceptionReporter\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.debug.ExceptionReporter</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p>\n<p>Classe de rapports d’exception utilisée par défaut si aucune n’a été attribuée à l’instance <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a>. Voir <a class=\"reference internal\" href=\"/fr/6.1/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">Rapports d’erreur personnalisés</span></a>.</p>\n</section>\n<section id=\"default-exception-reporter-filter\">\n<span id=\"std-setting-DEFAULT_EXCEPTION_REPORTER_FILTER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_EXCEPTION_REPORTER_FILTER</span></code><a class=\"heading-anchor\" href=\"#default-exception-reporter-filter\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/howto/error-reporting/#django.views.debug.SafeExceptionReporterFilter\" title=\"django.views.debug.SafeExceptionReporterFilter\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.debug.SafeExceptionReporterFilter</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p>\n<p>Classe de filtre de rapports d’exception utilisée par défaut si aucune n’a été attribuée à l’instance <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a>. Voir <a class=\"reference internal\" href=\"/fr/6.1/howto/error-reporting/#filtering-error-reports\"><span class=\"std std-ref\">Filtrage des rapports d’erreur</span></a>.</p>\n</section>\n<section id=\"default-from-email\">\n<span id=\"std-setting-DEFAULT_FROM_EMAIL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code><a class=\"heading-anchor\" href=\"#default-from-email\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'webmaster&#64;localhost'</span></code></p>\n<p>Adresse de courriel par défaut pour l’envoi de correspondance automatisée en provenance du gestionnaire du site. Cette adresse est utilisée dans l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">From:</span></code> des courriels sortants et accepte tout format valide pour le protocole d’envoi de courriel configuré.</p>\n<p>Cela ne concerne pas les messages d’erreur envoyés aux <a class=\"reference internal\" href=\"#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> et aux <a class=\"reference internal\" href=\"#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a>. Voir <a class=\"reference internal\" href=\"#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code></a> pour ces cas de figure.</p>\n<p>To build an address with a display name from variable content, see\n<a class=\"reference internal\" href=\"/fr/6.1/topics/email/#formatting-addresses\"><span class=\"std std-ref\">Formatting email addresses</span></a>.</p>\n</section>\n<section id=\"default-index-tablespace\">\n<span id=\"std-setting-DEFAULT_INDEX_TABLESPACE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_INDEX_TABLESPACE</span></code><a class=\"heading-anchor\" href=\"#default-index-tablespace\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Espace de tables utilisé par défaut pour les index sur les champs qui n’en indiquent pas, si le moteur les prend en charge (voir <a class=\"reference internal\" href=\"/fr/6.1/topics/db/tablespaces/\"><span class=\"doc\">Espaces de tables</span></a>).</p>\n</section>\n<section id=\"default-tablespace\">\n<span id=\"std-setting-DEFAULT_TABLESPACE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_TABLESPACE</span></code><a class=\"heading-anchor\" href=\"#default-tablespace\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Espace de tables utilisé par défaut pour les modèles qui n’en indiquent pas, si le moteur les prend en charge (voir <a class=\"reference internal\" href=\"/fr/6.1/topics/db/tablespaces/\"><span class=\"doc\">Espaces de tables</span></a>).</p>\n</section>\n<section id=\"disallowed-user-agents\">\n<span id=\"std-setting-DISALLOWED_USER_AGENTS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DISALLOWED_USER_AGENTS</span></code><a class=\"heading-anchor\" href=\"#disallowed-user-agents\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Liste d’objets d’expressions régulières compilées représentant des chaînes d’agent utilisateur (User-Agent) qui ne sont globalement pas autorisés à visiter le site. Utile pour les robots ou les collecteurs malveillants. Ce réglage n’est utilisé que si <code class=\"docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code> est installé (voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/middleware/\"><span class=\"doc\">Intergiciels (« Middleware »)</span></a>).</p>\n</section>\n<section id=\"email-backend\">\n<span id=\"std-setting-EMAIL_BACKEND\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code><a class=\"heading-anchor\" href=\"#email-backend\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Default: <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-smtp-backend\"><span class=\"std std-ref\">django.core.mail.backends.smtp.EmailBackend</span></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p>\n<p>Le moteur à utiliser pour envoyer des courriels. Consultez <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-backends\"><span class=\"std std-ref\">Moteurs de messagerie</span></a> pour obtenir la liste des moteurs disponibles.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <a class=\"reference internal\" href=\"#std-setting-MAILERS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code></a> in the\n<a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code> configuration. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-file-path\">\n<span id=\"std-setting-EMAIL_FILE_PATH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_FILE_PATH</span></code><a class=\"heading-anchor\" href=\"#email-file-path\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :  non définie</p>\n<p>Le répertoire utilisé par le <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-file-backend\"><span class=\"std std-ref\">moteur de messagerie file</span></a> pour stocker les fichiers qu’il produit.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;file_path&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a>\nin a <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the file email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-host\">\n<span id=\"std-setting-EMAIL_HOST\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code><a class=\"heading-anchor\" href=\"#email-host\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'localhost'</span></code></p>\n<p>L’hôte à utiliser pour envoyer des courriels.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-EMAIL_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_PORT</span></code></a>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;host&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in a\n<a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-host-password\">\n<span id=\"std-setting-EMAIL_HOST_PASSWORD\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_PASSWORD</span></code><a class=\"heading-anchor\" href=\"#email-host-password\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Mot de passe à utiliser pour le serveur SMTP défini dans <a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code></a>. Ce réglage est utilisé conjointement avec <a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code></a> lors de l’authentification au serveur SMTP. Si l’un de ces réglages est vide, Django ne tente pas de s’authentifier.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code></a>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;password&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in\na <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-host-user\">\n<span id=\"std-setting-EMAIL_HOST_USER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code><a class=\"heading-anchor\" href=\"#email-host-user\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Nom d’utilisateur à utiliser pour le serveur SMTP défini dans <a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code></a>. S’il est vide, Django ne tente pas de s’authentifier.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_PASSWORD</span></code></a>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;username&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in\na <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-port\">\n<span id=\"std-setting-EMAIL_PORT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_PORT</span></code><a class=\"heading-anchor\" href=\"#email-port\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">25</span></code></p>\n<p>Port à utiliser pour le serveur SMTP défini dans <a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code></a>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;port&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in a\n<a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-subject-prefix\">\n<span id=\"std-setting-EMAIL_SUBJECT_PREFIX\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_SUBJECT_PREFIX</span></code><a class=\"heading-anchor\" href=\"#email-subject-prefix\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'[Django]</span> <span class=\"pre\">'</span></code></p>\n<p>Préfixe de la ligne du sujet dans les messages électroniques envoyés avec <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.mail_admins</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.mail.mail_managers</span></code>. Une espace finale est probablement adéquate.</p>\n</section>\n<section id=\"email-use-localtime\">\n<span id=\"std-setting-EMAIL_USE_LOCALTIME\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_LOCALTIME</span></code><a class=\"heading-anchor\" href=\"#email-use-localtime\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il faut définir l’en-tête SMTP <code class=\"docutils literal notranslate\"><span class=\"pre\">Date</span></code> des courriels envoyés dans le fuseau horaire local (<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>) ou en UTC (<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>).</p>\n</section>\n<section id=\"email-use-tls\">\n<span id=\"std-setting-EMAIL_USE_TLS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code><a class=\"heading-anchor\" href=\"#email-use-tls\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique si une connexion TLS (sécurisée) doit être utilisée pour le dialogue avec le serveur SMTP. Ceci s’applique aux connexions TLS explicites, généralement sur le port 587. Si vous obtenez des connexions qui se bloquent, consultez le réglage TLS implicite <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code></a>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;use_tls&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in\na <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-use-ssl\">\n<span id=\"std-setting-EMAIL_USE_SSL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code><a class=\"heading-anchor\" href=\"#email-use-ssl\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique si une connexion TLS implicite (sécurisée) doit être utilisée pour le dialogue avec le serveur SMTP. Dans la plupart de documentations de messagerie électronique, ce type de connexion TLS s’appelle SSL. C’est généralement le port 465 qui est utilisé. Si vous rencontrez des problèmes, consultez le réglage TLS explicite <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code></a>.</p>\n<p>Notez que <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code></a>/<a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code></a> sont mutuellement exclusifs, un seul d’entre eux peut donc être défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;use_ssl&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in\na <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-ssl-certfile\">\n<span id=\"std-setting-EMAIL_SSL_CERTFILE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_CERTFILE</span></code><a class=\"heading-anchor\" href=\"#email-ssl-certfile\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Si <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code></a> ou <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code></a> valent <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> et que la connexion sécurisée au serveur SMTP nécessite une authentification du client, utilisez ce réglage pour indiquer le chemin vers un fichier de chaîne de certificat de type PEM, qui doit être utilisé conjointement avec <a class=\"reference internal\" href=\"#std-setting-EMAIL_SSL_KEYFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_KEYFILE</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_CERTFILE</span></code> ne doit pas être utilisé avec un certificat de serveur autosigné ou un certificat d’une autorité de certification (CA) privée. Dans de tels cas, le certificat du serveur (ou le certificat racine du CA privé) doit être installé dans le paquet des CA du système. Cela peut se faire en suivant les instructions spécifiques à votre plateforme pour installer un CA de certificat racine, ou en utilisant les variables d’environnement d’OpenSSL <code class=\"docutils literal notranslate\"><span class=\"pre\">SSL_CERT_FILE</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">SSL_CERT_DIR</span></code> pour indiquer un paquet de certificats personnalisé (si la modification au niveau système n’est pas possible ou pas souhaitée).</p>\n<p>For more complex scenarios, the <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-smtp-backend\"><span class=\"std std-ref\">SMTP EmailBackend</span></a> can be subclassed to add root certificates to its\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ssl_context</span></code> using\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locations\" title=\"(disponible dans Python v3.14)\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ssl.SSLContext.load_verify_locations()</span></code></a>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;ssl_certfile&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in a <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP\nemail backend. See <a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-ssl-keyfile\">\n<span id=\"std-setting-EMAIL_SSL_KEYFILE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_KEYFILE</span></code><a class=\"heading-anchor\" href=\"#email-ssl-keyfile\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Si <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code></a> ou <a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code></a> valent <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, vous pouvez définir de manière facultative le chemin vers un fichier de clé privée au format PEM pour l’authentification cliente de la connexion SSL, conjointement avec <a class=\"reference internal\" href=\"#std-setting-EMAIL_SSL_CERTFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_CERTFILE</span></code></a>.</p>\n<p>Notez que la définition de <a class=\"reference internal\" href=\"#std-setting-EMAIL_SSL_CERTFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_CERTFILE</span></code></a> et de <a class=\"reference internal\" href=\"#std-setting-EMAIL_SSL_KEYFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_KEYFILE</span></code></a> n’amène à aucune vérification de certificat. Ces valeurs sont transmises à la connexion SSL sous-jacente. Veuillez vous référer à la documentation de la fonction <a class=\"reference external\" href=\"https://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socket\" title=\"(disponible dans Python v3.14)\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ssl.SSLContext.wrap_socket()</span></code></a> de Python pour des détails sur la façon dont les fichiers de chaîne de certificat et de clé privée sont traités.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;ssl_keyfile&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a>\nin a <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"email-timeout\">\n<span id=\"std-setting-EMAIL_TIMEOUT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_TIMEOUT</span></code><a class=\"heading-anchor\" href=\"#email-timeout\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Définit un délai d’expiration en secondes pour des opérations bloquantes telles que la tentative de connexion.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting is deprecated and will be removed in Django 7.0. Its\nreplacement is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;timeout&quot;</span></code> under <a class=\"reference internal\" href=\"#std-setting-MAILERS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> in\na <a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a> definition that uses the SMTP email backend. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers\"><span class=\"std std-ref\">Migrating email to mailers</span></a>.</p>\n</aside>\n</section>\n<section id=\"file-upload-handlers\">\n<span id=\"std-setting-FILE_UPLOAD_HANDLERS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_HANDLERS</span></code><a class=\"heading-anchor\" href=\"#file-upload-handlers\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">[</span>\n    <span class=\"s2\">&quot;django.core.files.uploadhandler.MemoryFileUploadHandler&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.core.files.uploadhandler.TemporaryFileUploadHandler&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Une liste de gestionnaires à utiliser pour le téléversement de fichiers. Ce réglage permet de personnaliser complètement (même remplacer) le processus de gestion des téléversements par Django.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.1/topics/http/file-uploads/#file-upload-handlers\"><span class=\"std std-ref\">Gestionnaires de téléversement</span></a> for details.</p>\n</section>\n<section id=\"file-upload-max-memory-size\">\n<span id=\"std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_MAX_MEMORY_SIZE</span></code><a class=\"heading-anchor\" href=\"#file-upload-max-memory-size\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">2621440</span></code> (c-à-d. 2.5 Mio).</p>\n<p>The maximum size (in bytes) that an upload will be before it gets streamed to\nthe file system. See <a class=\"reference internal\" href=\"/fr/6.1/topics/http/file-uploads/#file-upload-handlers\"><span class=\"std std-ref\">Gestionnaires de téléversement</span></a> for details.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATA_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_MEMORY_SIZE</span></code></a>.</p>\n</section>\n<section id=\"file-upload-directory-permissions\">\n<span id=\"std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_DIRECTORY_PERMISSIONS</span></code><a class=\"heading-anchor\" href=\"#file-upload-directory-permissions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le mode numérique à appliquer aux répertoires créés durant le processus de téléversement de fichiers.</p>\n<p>Ce réglage détermine également les permissions par défaut pour les répertoires de recueil des fichiers statiques lors de l’utilisation de la commande d’administration <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>. Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> pour des détails sur la façon de le redéfinir.</p>\n<p>Cette valeur reflète la fonctionnalité et les restrictions du réglage <a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code></a>.</p>\n</section>\n<section id=\"file-upload-permissions\">\n<span id=\"std-setting-FILE_UPLOAD_PERMISSIONS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code><a class=\"heading-anchor\" href=\"#file-upload-permissions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">0o644</span></code></p>\n<p>Le mode numérique (ex : <code class=\"docutils literal notranslate\"><span class=\"pre\">0o644</span></code>) des permissions pour les nouveaux fichiers téléversés. Pour plus d’informations sur la signification des ces modes, consultez la documentation de <a class=\"reference external\" href=\"https://docs.python.org/3/library/os.html#os.chmod\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">os.chmod()</span></code></a>.</p>\n<p>Si ce réglage vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, vous obtiendrez un comportement dépendant du système d’exploitation. Sur la plupart des plates-formes, les fichiers temporaires obtiennent un mode <code class=\"docutils literal notranslate\"><span class=\"pre\">0o600</span></code> et les fichiers enregistrés à partir de la mémoire sont enregistrés avec le masque « umask » standard du système.</p>\n<p>Pour des raisons de sécurité, ces permissions ne sont pas appliquées aux fichiers temporaires qui sont stockés dans <a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_TEMP_DIR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_TEMP_DIR</span></code></a>.</p>\n<p>Ce réglage détermine également les permissions par défaut pour les fichiers statiques recueillis par la commande d’administration <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>. Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> pour des détails sur la façon de le redéfinir.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p><strong>Toujours précéder le mode d’un</strong> <code class=\"docutils literal notranslate\"><span class=\"pre\">0o</span></code> <strong>.</strong></p>\n<p>Si vous n’êtes pas à l’aise avec les modes de fichiers, sachez que le préfixe <code class=\"docutils literal notranslate\"><span class=\"pre\">0o</span></code> est très important : il indique un nombre octal, ce qui est la bonne manière d’indiquer les modes. Si vous essayez d’utiliser <code class=\"docutils literal notranslate\"><span class=\"pre\">644</span></code>, vous obtiendrez un comportement totalement incorrect.</p>\n</aside>\n<aside class=\"admonition-a-numeric-value-trumps-umask admonition\">\n<p class=\"admonition-title\">A numeric value trumps umask</p>\n<p>When this setting has a numeric value (one you’ve set yourself, or the\ndefault <code class=\"docutils literal notranslate\"><span class=\"pre\">0o644</span></code>), this value will be used as is, and a umask will not\nbe applied to it. The umask will apply only if this setting is <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</aside>\n</section>\n<section id=\"file-upload-temp-dir\">\n<span id=\"std-setting-FILE_UPLOAD_TEMP_DIR\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_TEMP_DIR</span></code><a class=\"heading-anchor\" href=\"#file-upload-temp-dir\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le répertoire dans lequel stocker temporairement les données (typiquement pour les fichiers plus grands que <a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_MAX_MEMORY_SIZE</span></code></a>) lors des téléversements de fichiers. Avec la valeur <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, Django utilise le répertoire temporaire standard du système d’exploitation. Par exemple, il s’agit de <code class=\"docutils literal notranslate\"><span class=\"pre\">/tmp</span></code> sur les systèmes d’exploitation de type Unix.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.1/topics/http/file-uploads/#file-upload-handlers\"><span class=\"std std-ref\">Gestionnaires de téléversement</span></a> for details.</p>\n</section>\n<section id=\"first-day-of-week\">\n<span id=\"std-setting-FIRST_DAY_OF_WEEK\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FIRST_DAY_OF_WEEK</span></code><a class=\"heading-anchor\" href=\"#first-day-of-week\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code> (dimanche)</p>\n<p>Un nombre représentant le premier jour de la semaine. C’est particulièrement utile lors de l’affichage d’un calendrier. Cette valeur n’est utilisée que si les formats internationaux ne sont pas en vigueur ou si un format n’est pas trouvé pour la langue actuelle.</p>\n<p>La valeur est un entier de 0 à 6, où 0 signifie dimanche, 1 signifie lundi, etc.</p>\n</section>\n<section id=\"fixture-dirs\">\n<span id=\"std-setting-FIXTURE_DIRS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FIXTURE_DIRS</span></code><a class=\"heading-anchor\" href=\"#fixture-dirs\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Liste de répertoires dans lesquels des fichiers <a class=\"reference internal\" href=\"/fr/6.1/topics/db/fixtures/#fixtures-explanation\"><span class=\"std std-ref\">d’instantanés</span></a> sont recherchés, en plus du répertoire <code class=\"docutils literal notranslate\"><span class=\"pre\">fixtures</span></code> de chaque application, dans l’ordre de recherche.</p>\n<p>Notez que ces chemins doivent utiliser les barres obliques de style Unix, même avec Windows.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/howto/initial-data/#initial-data-via-fixtures\"><span class=\"std std-ref\">Ajout de données par des instantanés</span></a> et <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/tools/#topics-testing-fixtures\"><span class=\"std std-ref\">Chargement des instantanés</span></a>.</p>\n</section>\n<section id=\"force-script-name\">\n<span id=\"std-setting-FORCE_SCRIPT_NAME\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FORCE_SCRIPT_NAME</span></code><a class=\"heading-anchor\" href=\"#force-script-name\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Si différent de <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, ce réglage est utilisé comme valeur de la variable d’environnement <code class=\"docutils literal notranslate\"><span class=\"pre\">SCRIPT_NAME</span></code> dans toute requête HTTP. Il peut être utilisé pour surcharger la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">SCRIPT_NAME</span></code> fournie par le serveur, qui peut être une version réécrite de la valeur préférée ou carrément absente. Il est aussi utilisé par <a class=\"reference internal\" href=\"/fr/6.1/ref/applications/#django.setup\" title=\"django.setup\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.setup()</span></code></a> pour définir le préfixe de script du résolveur d’URL en dehors du cycle requête/réponse (par ex. dans les commandes d’administration et les scripts autonomes) pour générer des URL correctes lorsque <code class=\"docutils literal notranslate\"><span class=\"pre\">FORCE_SCRIPT_NAME</span></code> possède une valeur.</p>\n</section>\n<section id=\"form-renderer\">\n<span id=\"std-setting-FORM_RENDERER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code><a class=\"heading-anchor\" href=\"#form-renderer\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/forms/renderers/#django.forms.renderers.DjangoTemplates\" title=\"django.forms.renderers.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.renderers.DjangoTemplates</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p>\n<p>La classe qui produit les formulaires et composants de formulaires HTML. Elle doit implémenter l’<a class=\"reference internal\" href=\"/fr/6.1/ref/forms/renderers/#low-level-widget-render-api\"><span class=\"std std-ref\">API de rendu de bas niveau</span></a>. Les producteurs de formulaires inclus sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/forms/renderers/#django.forms.renderers.DjangoTemplates\" title=\"django.forms.renderers.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.renderers.DjangoTemplates</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/forms/renderers/#django.forms.renderers.Jinja2\" title=\"django.forms.renderers.Jinja2\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.renderers.Jinja2</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/forms/renderers/#django.forms.renderers.TemplatesSetting\" title=\"django.forms.renderers.TemplatesSetting\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.renderers.TemplatesSetting</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code></p></li>\n</ul>\n</section>\n<section id=\"format-module-path\">\n<span id=\"std-setting-FORMAT_MODULE_PATH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FORMAT_MODULE_PATH</span></code><a class=\"heading-anchor\" href=\"#format-module-path\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Un chemin Python complet vers un paquet Python contenant des définitions de formats personnalisées pour les locales du projet. Si différent de <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, Django cherche un fichier <code class=\"docutils literal notranslate\"><span class=\"pre\">formats.py</span></code> dans le répertoire dont le nom correspond à la locale en cours et utilise les formats définis dans ce fichier.</p>\n<p>Le nom du répertoire contenant les définitions de format doit respecter le format de nommage avec la notation de <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/#term-locale-name\"><span class=\"xref std std-term\">nom de locale</span></a>. Par exemple, <code class=\"docutils literal notranslate\"><span class=\"pre\">de</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">pt_BR</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">es_AR</span></code>, etc.</p>\n<p>Par exemple, si <a class=\"reference internal\" href=\"#std-setting-FORMAT_MODULE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORMAT_MODULE_PATH</span></code></a> est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.formats</span></code> et que la langue actuelle est <code class=\"docutils literal notranslate\"><span class=\"pre\">en</span></code> (anglais), Django s’attend à une arborescence de répertoires comme celle-ci :</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</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=\"Text code\"><code>mysite/\n    formats/\n        __init__.py\n        en/\n            __init__.py\n            formats.py\n</code></pre></div>\n<p>Vous pouvez aussi définir ce réglage à une liste de chemins Python, 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=\"n\">FORMAT_MODULE_PATH</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;mysite.formats&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;some_app.formats&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Lorsque Django recherche un certain format, il va parcourir tous les chemins Python indiqués jusqu’à ce qu’il trouve un module qui définit réellement le format recherché. Cela signifie que les formats définis dans les premiers paquets de la liste ont la priorité sur les formats des paquets suivants.</p>\n<p>Les formats disponibles sont :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>,</p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DECIMAL_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DECIMAL_SEPARATOR</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FIRST_DAY_OF_WEEK\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FIRST_DAY_OF_WEEK</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MONTH_DAY_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MONTH_DAY_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SHORT_DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SHORT_DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-YEAR_MONTH_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">YEAR_MONTH_FORMAT</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"ignorable-404-urls\">\n<span id=\"std-setting-IGNORABLE_404_URLS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_URLS</span></code><a class=\"heading-anchor\" href=\"#ignorable-404-urls\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>List of compiled regular expression objects describing URLs that should be\nignored when reporting HTTP 404 errors via email (see\n<a class=\"reference internal\" href=\"/fr/6.1/howto/error-reporting/\"><span class=\"doc\">Gestion du signalement des erreurs</span></a>). Regular expressions are matched against\nrequest’s full paths, as returned by\n<a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest.get_full_path\" title=\"django.http.HttpRequest.get_full_path\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_full_path()</span></code></a> (including any query strings).\nUse this if your site does not provide a commonly requested file such as\n<code class=\"docutils literal notranslate\"><span class=\"pre\">favicon.ico</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">robots.txt</span></code>.</p>\n<p>Ce n’est utilisé que si <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.common.BrokenLinkEmailsMiddleware\" title=\"django.middleware.common.BrokenLinkEmailsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BrokenLinkEmailsMiddleware</span></code></a> est activé (voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/middleware/\"><span class=\"doc\">Intergiciels (« Middleware »)</span></a>).</p>\n</section>\n<section id=\"installed-apps\">\n<span id=\"std-setting-INSTALLED_APPS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code><a class=\"heading-anchor\" href=\"#installed-apps\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste de chaînes désignant toutes les applications activées dans cette installation de Django. Chaque chaîne doit correspondre à un chemin pointé Python vers :</p>\n<ul class=\"simple\">\n<li><p>une classe de configuration d’application (de préférence), ou</p></li>\n<li><p>un paquet contenant une application.</p></li>\n</ul>\n<p><a class=\"reference internal\" href=\"/fr/6.1/ref/applications/\"><span class=\"doc\">En savoir plus sur les configurations d’applications</span></a>.</p>\n<aside class=\"admonition-use-the-application-registry-for-introspection admonition\">\n<p class=\"admonition-title\">Utilisez le registre des applications pour l’introspection</p>\n<p>Votre code ne devrait jamais accéder directement à <a class=\"reference internal\" href=\"#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>. Utilisez plutôt <a class=\"reference internal\" href=\"/fr/6.1/ref/applications/#django.apps.apps\" title=\"django.apps.apps\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">django.apps.apps</span></code></a>.</p>\n</aside>\n<aside class=\"admonition-application-names-and-labels-must-be-unique-in-setting-installed-apps admonition\">\n<p class=\"admonition-title\">Les noms et les étiquettes d’application doivent être uniques dans <a class=\"reference internal\" href=\"#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a></p>\n<p>Les <a class=\"reference internal\" href=\"/fr/6.1/ref/applications/#django.apps.AppConfig.name\" title=\"django.apps.AppConfig.name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">noms</span></code></a> d’applications, le chemin pointé Python vers le paquet de l’application, doivent être uniques. Il n’existe aucune manière d’inclure deux fois la même application, sauf en dupliquant son code sous un autre nom.</p>\n<p>Les <a class=\"reference internal\" href=\"/fr/6.1/ref/applications/#django.apps.AppConfig.label\" title=\"django.apps.AppConfig.label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">étiquettes</span></code></a> d’application, par défaut la partie finale du nom, doivent aussi être uniques. Par exemple, il n’est pas possible d’inclure à la fois <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">monprojet.auth</span></code>. Cependant, vous pouvez renommer l’étiquette d’une application avec une configuration personnalisée définissant un attribut <a class=\"reference internal\" href=\"/fr/6.1/ref/applications/#django.apps.AppConfig.label\" title=\"django.apps.AppConfig.label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label</span></code></a> différent.</p>\n<p>Ces règles s’appliquent dans tous les cas, quelle que soit la cible des références dans <a class=\"reference internal\" href=\"#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>, des classes de configuration d’application ou des paquets d’application.</p>\n</aside>\n<p>Lorsque plusieurs applications fournissent différentes versions de la même ressource (gabarit, fichier statique, commande d’administration, traduction), l’application apparaissant en premier dans <a class=\"reference internal\" href=\"#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> a la priorité.</p>\n</section>\n<section id=\"internal-ips\">\n<span id=\"std-setting-INTERNAL_IPS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">INTERNAL_IPS</span></code><a class=\"heading-anchor\" href=\"#internal-ips\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste d’adresses IP, sous forme de chaînes, dont les requêtes :</p>\n<ul class=\"simple\">\n<li><p>Permettent au processeur de contexte <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/api/#django.template.context_processors.debug\" title=\"django.template.context_processors.debug\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">debug()</span></code></a> d’ajouter quelques variables au contexte du gabarit.</p></li>\n<li><p>Peuvent utiliser les <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/admin/admindocs/#admindocs-bookmarklets\"><span class=\"std std-ref\">signets dynamiques de admindocs</span></a> même si l’utilisateur n’est pas connecté en tant qu’administrateur (staff).</p></li>\n<li><p>Sont marquées comme « internes » (et non pas « EXTERNAL ») dans les courriels envoyés par <a class=\"reference internal\" href=\"/fr/6.1/ref/logging/#django.utils.log.AdminEmailHandler\" title=\"django.utils.log.AdminEmailHandler\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminEmailHandler</span></code></a>.</p></li>\n</ul>\n</section>\n<section id=\"language-code\">\n<span id=\"std-setting-LANGUAGE_CODE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code><a class=\"heading-anchor\" href=\"#language-code\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'en-us'</span></code></p>\n<p>Une chaîne représentant le code de langue de cette installation. Elle doit respecter le <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/#term-language-code\"><span class=\"xref std std-term\">format de langue</span></a> standard. Par exemple, l’anglais américain est <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;en-us&quot;</span></code>. Voir aussi la <a class=\"reference external\" href=\"http://www.i18nguy.com/unicode/language-identifiers.html\">liste des identifiants de langue</a> et <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/\"><span class=\"doc\">Internationalisation et régionalisation</span></a>.</p>\n<p>Ce réglage sert à trois fins :</p>\n<ul class=\"simple\">\n<li><p>Si l’intergiciel de localisation n’est pas actif, il décide quelle traduction est utilisée pour tous les utilisateurs.</p></li>\n<li><p>Si l’intergiciel de localisation est actif, il fournit une langue par défaut dans le cas où la langue préférée de l’utilisateur ne peut être déterminée ou n’est pas prise en charge par le site web. Il fournit également la traduction par défaut lorsqu’une traduction d’une chaîne donnée n’existe pas dans la langue préférée de l’utilisateur.</p></li>\n<li><p>Si la régionalisation est explicitement désactivée via le filtre <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/formatting/#std-templatefilter-unlocalize\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">unlocalize</span></code></a> ou la balise <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/formatting/#std-templatetag-localize\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">localize</span> <span class=\"pre\">off</span> <span class=\"pre\">%}</span></code></a>, il indique quels formats de régionalisation de base seront appliqués. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/formatting/#topic-l10n-templates\"><span class=\"std std-ref\">contrôle de la régionalisation dans les gabarits</span></a> pour plus de détails.</p></li>\n</ul>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/translation/#how-django-discovers-language-preference\"><span class=\"std std-ref\">Processus de découverte de la préférence de langue par Django</span></a> pour plus de détails.</p>\n</section>\n<section id=\"language-cookie-age\">\n<span id=\"std-setting-LANGUAGE_COOKIE_AGE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_AGE</span></code><a class=\"heading-anchor\" href=\"#language-cookie-age\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> (expiration à la fermeture du navigateur)</p>\n<p>L’âge du cookie de langue, en secondes.</p>\n</section>\n<section id=\"language-cookie-domain\">\n<span id=\"std-setting-LANGUAGE_COOKIE_DOMAIN\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_DOMAIN</span></code><a class=\"heading-anchor\" href=\"#language-cookie-domain\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le domaine à utiliser pour le cookie de langue. Définissez ce réglage à une chaîne, comme <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;example.com&quot;</span></code> pour un cookie inter-domaine, ou utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour un cookie de domaine standard.</p>\n<p>Soyez prudent lors de la mise à jour de ce réglage sur un site de production. Si vous mettez à jour ce paramètre pour activer les cookies inter-domaines sur un site qui utilisait précédemment les cookies de domaine standards, les cookies existants des utilisateurs qui contiennent l’ancien domaine ne seront pas mis à jour. Il en résultera qu’ils seront incapables de changer de langue aussi longtemps que ces cookies persistent. La seule façon sûre et fiable d’effectuer ce changement est de modifier de manière permanente le cookie de langue (via le réglage <a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_NAME</span></code></a>) et d’ajouter un intergiciel qui copie la valeur de l’ancien cookie vers le nouveau, puis supprime l’ancien.</p>\n</section>\n<section id=\"language-cookie-httponly\">\n<span id=\"std-setting-LANGUAGE_COOKIE_HTTPONLY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_HTTPONLY</span></code><a class=\"heading-anchor\" href=\"#language-cookie-httponly\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique si le drapeau <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> doit être utilisé sur le cookie de langue. Si ce paramètre est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le JavaScript côté client ne sera pas en mesure d’accéder au cookie de langue.</p>\n<p>Voir <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code></a> pour plus de détails sur <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code>.</p>\n</section>\n<section id=\"language-cookie-name\">\n<span id=\"std-setting-LANGUAGE_COOKIE_NAME\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_NAME</span></code><a class=\"heading-anchor\" href=\"#language-cookie-name\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'django_language'</span></code></p>\n<p>Le nom à utiliser pour le cookie de langue. Vous pouvez mettre ce que vous voulez (tant que c’est un nom de cookie différent de ceux qui existent déjà). Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/\"><span class=\"doc\">Internationalisation et régionalisation</span></a>.</p>\n</section>\n<section id=\"language-cookie-path\">\n<span id=\"std-setting-LANGUAGE_COOKIE_PATH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_PATH</span></code><a class=\"heading-anchor\" href=\"#language-cookie-path\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'/'</span></code></p>\n<p>Le chemin défini dans le cookie de langue. Cela devrait correspondre au chemin d’URL de votre installation Django ou être un parent de ce chemin.</p>\n<p>C’est utile lorsque vous avez plusieurs instances Django fonctionnant sous le même nom d’hôte. Elles peuvent alors utiliser des chemins de cookie différents et chaque instance ne verra que ses propres cookies de langue.</p>\n<p>Soyez prudent lors de la mise à jour de ce réglage sur un site de production. Si vous mettez à jour ce réglage afin d’utiliser un chemin plus profond que précédemment, les cookies existants des utilisateurs qui contiennent l’ancien chemin ne seront pas mis à jour. Il en résultera qu’ils seront incapables de changer de langue aussi longtemps que ces cookies persistent. La seule façon sûre et fiable d’effectuer ce changement est de modifier de manière permanente le cookie de langue (via le réglage <a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_NAME</span></code></a>) et d’ajouter un intergiciel qui copie la valeur de l’ancien cookie vers le nouveau, puis supprime l’ancien.</p>\n</section>\n<section id=\"language-cookie-samesite\">\n<span id=\"std-setting-LANGUAGE_COOKIE_SAMESITE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_SAMESITE</span></code><a class=\"heading-anchor\" href=\"#language-cookie-samesite\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>La valeur de l’option <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value\">SameSite</a> du cookie de langue. Cette option empêche le cookie d’être envoyé dans les requêtes inter-sites.</p>\n<p>Voir <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_SAMESITE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SAMESITE</span></code></a> pour plus de détails sur <code class=\"docutils literal notranslate\"><span class=\"pre\">SameSite</span></code>.</p>\n</section>\n<section id=\"language-cookie-secure\">\n<span id=\"std-setting-LANGUAGE_COOKIE_SECURE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_SECURE</span></code><a class=\"heading-anchor\" href=\"#language-cookie-secure\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il est nécessaire d’utiliser un cookie sécurisé pour le cookie de langue. Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le cookie sera marqué comme « sécurisé », ce qui signifie que les navigateurs sont chargés de vérifier que le cookie n’est envoyé que pour des connexions HTTPS.</p>\n</section>\n<section id=\"languages\">\n<span id=\"std-setting-LANGUAGES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code><a class=\"heading-anchor\" href=\"#languages\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : une liste des langues disponibles. Cette liste augmentant continuellement, nous évitons de la reproduire ici, car elle deviendrait vite obsolète. Vous pouvez consultez la liste des langues disposant d’une traduction en examinant le fichier <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.1.x/django/conf/global_settings.py\">django/conf/global_settings.py</a>.</p>\n<p>La liste est formée de listes binaires dans le format (<a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/#term-language-code\"><span class=\"xref std std-term\">code de langue</span></a>, <code class=\"docutils literal notranslate\"><span class=\"pre\">nom_de_langue</span></code>), par exemple <code class=\"docutils literal notranslate\"><span class=\"pre\">('ja',</span> <span class=\"pre\">'Japanese')</span></code>. Cette liste définit les langues disponibles dans la sélection de langues. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/\"><span class=\"doc\">Internationalisation et régionalisation</span></a>.</p>\n<p>Généralement, la valeur par défaut convient bien. Ne définissez ce réglage que si vous souhaitez restreindre la sélection de langues à un sous-ensemble des langues fournies par Django.</p>\n<p>Si vous personnalisez le réglage <a class=\"reference internal\" href=\"#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a>, vous pouvez marquer les noms des langues en tant que chaînes à traduire en utilisant la fonction <a class=\"reference internal\" href=\"/fr/6.1/ref/utils/#django.utils.translation.gettext_lazy\" title=\"django.utils.translation.gettext_lazy\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">gettext_lazy()</span></code></a>.</p>\n<p>Voici un exemple de fichier de réglages :</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=\"w\"> </span><span class=\"nn\">django.utils.translation</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">gettext_lazy</span> <span class=\"k\">as</span> <span class=\"n\">_</span>\n\n<span class=\"n\">LANGUAGES</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;de&quot;</span><span class=\"p\">,</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;German&quot;</span><span class=\"p\">)),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;English&quot;</span><span class=\"p\">)),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"languages-bidi\">\n<span id=\"std-setting-LANGUAGES_BIDI\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LANGUAGES_BIDI</span></code><a class=\"heading-anchor\" href=\"#languages-bidi\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : une liste de codes de langues qui s’écrivent de droite à gauche. Vous pouvez consultez la liste de ces langues en examinant le fichier <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.1.x/django/conf/global_settings.py\">django/conf/global_settings.py</a>.</p>\n<p>La liste contient des <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/#term-language-code\"><span class=\"xref std std-term\">codes de langue</span></a> pour les langues qui s’écrivent de droite à gauche.</p>\n<p>Généralement, la valeur par défaut convient bien. Ne définissez ce réglage que si vous souhaitez restreindre la sélection de langues à un sous-ensemble des langues fournies par Django. Si vous définissez un réglage <a class=\"reference internal\" href=\"#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a> personnalisé, la liste des langues bidirectionnelles peut contenir des codes de langue non activés pour un site particulier.</p>\n</section>\n<section id=\"locale-paths\">\n<span id=\"std-setting-LOCALE_PATHS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LOCALE_PATHS</span></code><a class=\"heading-anchor\" href=\"#locale-paths\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste de répertoires dans lesquels Django cherche les fichiers de traduction. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/i18n/translation/#how-django-discovers-translations\"><span class=\"std std-ref\">Processus de découverte des traductions par Django</span></a>.</p>\n<p>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=\"n\">LOCALE_PATHS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;/home/www/project/common_files/locale&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;/var/local/translations/locale&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Django cherche dans chacun de ces chemins des répertoires <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;code_locale&gt;/LC_MESSAGES</span></code> contenant eux-mêmes les fichiers de traduction réels.</p>\n</section>\n<section id=\"logging\">\n<span id=\"std-setting-LOGGING\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code><a class=\"heading-anchor\" href=\"#logging\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : un dictionnaire de configuration de la journalisation.</p>\n<p>Une structure de données contenant les informations de configuration. Lorsqu’il n’est pas vide, le contenu de cette structure de données est transmis comme paramètre à la méthode de configuration indiquée par <a class=\"reference internal\" href=\"#std-setting-LOGGING_CONFIG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING_CONFIG</span></code></a>.</p>\n<p>Entre autres choses, la configuration par défaut de la journalisation transmet les erreurs de serveur HTTP 500 à un gestionnaire de journal de type courriel lorsque <a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Voir aussi <a class=\"reference internal\" href=\"/fr/6.1/topics/logging/#configuring-logging\"><span class=\"std std-ref\">Configuration de la journalisation</span></a>.</p>\n<p>Vous pouvez voir la configuration par défaut de journalisation en regardant dans <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.1.x/django/utils/log.py\">django/utils/log.py</a>.</p>\n</section>\n<section id=\"logging-config\">\n<span id=\"std-setting-LOGGING_CONFIG\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LOGGING_CONFIG</span></code><a class=\"heading-anchor\" href=\"#logging-config\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'logging.config.dictConfig'</span></code></p>\n<p>Un chemin vers un exécutable qui sera utilisé pour configurer la journalisation du projet Django. Par défaut, il contient une instance de la méthode de configuration <a class=\"reference external\" href=\"https://docs.python.org/3/library/logging.config.html#logging-config-dictschema\" title=\"(disponible dans Python v3.14)\"><span class=\"xref std std-ref\">dictConfig</span></a> de Python.</p>\n<p>Si vous définissez <a class=\"reference internal\" href=\"#std-setting-LOGGING_CONFIG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING_CONFIG</span></code></a> à <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, le processus de configuration de la journalisation sera court-circuité.</p>\n</section>\n<section id=\"mailers\">\n<span id=\"std-setting-MAILERS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code><a class=\"heading-anchor\" href=\"#mailers\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.1\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>Valeur par défaut :  non définie</p>\n<p>A dictionary containing the settings for all email backends to be used with\nDjango. It is a nested dictionary that maps backend aliases to dictionaries\ncontaining each mailer’s backend import path and configuration options.</p>\n<p>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=\"n\">MAILERS</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;host&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;smtp.example.net&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n    <span class=\"s2\">&quot;newsletters&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;host&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;smtp.bulk-email-service.example.com&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;username&quot;</span><span class=\"p\">:</span> <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;BULK_EMAIL_SERVICE_ACCOUNT_ID&quot;</span><span class=\"p\">],</span>\n            <span class=\"s2\">&quot;password&quot;</span><span class=\"p\">:</span> <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;BULK_EMAIL_SERVICE_API_KEY&quot;</span><span class=\"p\">],</span>\n            <span class=\"s2\">&quot;use_tls&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>If you plan to send email through Django, configuring at least a <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code>\nmailer is recommended. Any number of additional mailers may also be specified.\nDepending on which backend is used, other options may be required.</p>\n<p>Setting <code class=\"docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code> to an empty dictionary (<code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code>) disables email sending and\nany attempt to send mail will raise <code class=\"docutils literal notranslate\"><span class=\"pre\">MailerDoesNotExist</span></code>.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-configuration\"><span class=\"std std-ref\">Configuring email</span></a> for more information.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>In Django 7.0, the default value will change from « Not defined » to <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code>.\nUntil then, if <code class=\"docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code> is not defined in the project’s settings, Django\nwill create a <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code> mailer using the <a class=\"reference internal\" href=\"#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code></a>\nsetting. Projects can opt into the Django 7.0 behavior at any time by\nadding <code class=\"docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code> and removing <code class=\"docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code> from their settings. See\n<a class=\"reference internal\" href=\"/fr/6.1/howto/mailers-migration/#migrating-to-mailers-settings\"><span class=\"std std-ref\">Migrating settings</span></a>.</p>\n</aside>\n<section id=\"std-setting-MAILERS-BACKEND\">\n<span id=\"id6\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code><a class=\"heading-anchor\" href=\"#std-setting-MAILERS-BACKEND\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Default: <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django.core.mail.backends.smtp.EmailBackend&quot;</span></code></p>\n<p>The Python import path to the email backend class. If <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;BACKEND&quot;</span></code> is omitted,\nDjango’s <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-smtp-backend\"><span class=\"std std-ref\">Le moteur SMTP</span></a> is used.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#topic-email-backends\"><span class=\"std std-ref\">Moteurs de messagerie</span></a> for a list of Django’s built-in backends and\npointers to community-maintained options.</p>\n</section>\n<section id=\"std-setting-MAILERS-OPTIONS\">\n<span id=\"id7\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code><a class=\"heading-anchor\" href=\"#std-setting-MAILERS-OPTIONS\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code></p>\n<p>Configuration parameters to pass to the email backend. The available and\nrequired options vary depending on the backend.</p>\n</section>\n</section>\n<section id=\"managers\">\n<span id=\"std-setting-MANAGERS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code><a class=\"heading-anchor\" href=\"#managers\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste dans le même format que <a class=\"reference internal\" href=\"#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> qui détermine qui doit recevoir les notifications de liens brisés lorsque <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.common.BrokenLinkEmailsMiddleware\" title=\"django.middleware.common.BrokenLinkEmailsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BrokenLinkEmailsMiddleware</span></code></a> est activé.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Dans les anciennes versions, il était nécessaire d’indiquer une liste de tuples (nom, adresse).</p>\n</aside>\n</section>\n<section id=\"media-root\">\n<span id=\"std-setting-MEDIA_ROOT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code><a class=\"heading-anchor\" href=\"#media-root\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>Chemin absolu de système de fichiers pointant vers le répertoire qui contiendra les <a class=\"reference internal\" href=\"/fr/6.1/topics/files/\"><span class=\"doc\">fichiers téléversés par les utilisateurs</span></a>.</p>\n<p>Exemple : <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/var/www/example.com/media/&quot;</span></code></p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p><a class=\"reference internal\" href=\"#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> doivent avoir des valeurs différentes. Avant que <a class=\"reference internal\" href=\"#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> soit introduit, il était fréquent de compter ou de se replier sur <a class=\"reference internal\" href=\"#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> pour servir également les fichiers statiques ; cependant, comme cela peut avoir des conséquences graves pour la sécurité, il y a un contrôle de validation pour l’empêcher.</p>\n</aside>\n</section>\n<section id=\"media-url\">\n<span id=\"std-setting-MEDIA_URL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code><a class=\"heading-anchor\" href=\"#media-url\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>URL qui gère les fichiers médias servis à partir de <a class=\"reference internal\" href=\"#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a>, utilisée pour la <a class=\"reference internal\" href=\"/fr/6.1/topics/files/\"><span class=\"doc\">gestion des fichiers stockés</span></a>. Elle doit se terminer par une barre oblique si elle ne contient pas de valeur vide. Il sera nécessaire de <a class=\"reference internal\" href=\"/fr/6.1/howto/static-files/#serving-uploaded-files-in-development\"><span class=\"std std-ref\">configurer ces fichiers afin d’être servis</span></a> aussi bien en environnement de développement que de production.</p>\n<p>Si vous souhaitez utiliser <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">MEDIA_URL</span> <span class=\"pre\">}}</span></code> dans vos gabarits, ajoutez <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.context_processors.media'</span></code> dans l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">'context_processors'</span></code> de <a class=\"reference internal\" href=\"#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>.</p>\n<p>Exemple : <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://media.example.com/&quot;</span></code></p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p>Il existe des risques de sécurité si vous acceptez du contenu téléversé de la part d’utilisateurs non fiables. Consultez le sujet <a class=\"reference internal\" href=\"/fr/6.1/topics/security/#user-uploaded-content-security\"><span class=\"std std-ref\">Contenu envoyé par les utilisateurs</span></a> du guide de sécurité pour des détails sur les mesures de réduction des risques.</p>\n</aside>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p><a class=\"reference internal\" href=\"#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> doivent avoir des valeurs différentes. Voir <a class=\"reference internal\" href=\"#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> pour plus de détails.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Si <a class=\"reference internal\" href=\"#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> est un chemin relatif, il sera préfixé par la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">SCRIPT_NAME</span></code> fournie par le serveur (ou <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code> si non défini). Cela rend plus simple la configuration d’une application Django dans un sous-chemin sans devoir ajouter une configuration supplémentaire aux réglages.</p>\n</aside>\n</section>\n<section id=\"middleware\">\n<span id=\"std-setting-MIDDLEWARE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code><a class=\"heading-anchor\" href=\"#middleware\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Une liste d’intergiciels à utiliser. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/middleware/\"><span class=\"doc\">Intergiciels (« Middleware »)</span></a>.</p>\n</section>\n<section id=\"migration-modules\">\n<span id=\"std-setting-MIGRATION_MODULES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MIGRATION_MODULES</span></code><a class=\"heading-anchor\" href=\"#migration-modules\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code> (dictionnaire vide)</p>\n<p>Un dictionnaire indiquant le paquet où les modules de migration peuvent être trouvés pour chaque application. La valeur par défaut de ce réglage est un dictionnaire vide, mais le nom de paquet par défaut pour les modules de migration est <code class=\"docutils literal notranslate\"><span class=\"pre\">migrations</span></code>.</p>\n<p>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=\"p\">{</span><span class=\"s2\">&quot;blog&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;blog.db_migrations&quot;</span><span class=\"p\">}</span>\n</code></pre></div>\n<p>Dans ce cas, les migrations concernant l’application <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code> seront contenues dans le paquet <code class=\"docutils literal notranslate\"><span class=\"pre\">blog.db_migrations</span></code>.</p>\n<p>Si vous fournissez le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code>, <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-makemigrations\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">makemigrations</span></code></a> crée automatiquement le paquet s’il n’existe pas déjà.</p>\n<p>Lorsque vous fournissez <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> comme valeur pour une application, Django considère l’application comme sans migrations, sans prendre en compte un éventuel sous-module <code class=\"docutils literal notranslate\"><span class=\"pre\">migrations</span></code> existant. Ceci peut être utilisé, par exemple, dans un fichier de réglages de test pour sauter les migrations durant les tests (les tables seront quand même créées pour les modèles des applications). Pour désactiver les migrations de toutes les applications pendant les tests, vous pouvez définir le réglage <a class=\"reference internal\" href=\"#std-setting-TEST_MIGRATE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIGRATE</span></code></a> à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Si <code class=\"docutils literal notranslate\"><span class=\"pre\">MIGRATION_MODULES</span></code> est utilisé dans les réglages généraux du projet, pensez à utiliser l’option <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#cmdoption-migrate-run-syncdb\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">migrate</span> <span class=\"pre\">--run-syncdb</span></code></a> si vous souhaitez créer les tables de l’application.</p>\n</section>\n<section id=\"month-day-format\">\n<span id=\"std-setting-MONTH_DAY_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MONTH_DAY_FORMAT</span></code><a class=\"heading-anchor\" href=\"#month-day-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'F</span> <span class=\"pre\">j'</span></code></p>\n<p>Le format par défaut à utiliser pour les champs date dans les listes pour modifications des pages de l’administration de Django, et potentiellement dans d’autres parties du système, dans les cas où seuls le mois et le jour sont affichés.</p>\n<p>Par exemple, lorsqu’une page de liste pour modification de l’administration de Django est filtrée par un choix de date, l’en-tête d’un jour donné affiche le jour et le mois. Différentes locales présentent différents formats. Par exemple, l’anglais américain affichera « January 1, » alors que l’espagnol affichera « 1 Enero. ».</p>\n<p>Notez que le format induit par la locale a une priorité plus élevée et remplace ce séparateur.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>. Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-YEAR_MONTH_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">YEAR_MONTH_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"number-grouping\">\n<span id=\"std-setting-NUMBER_GROUPING\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code><a class=\"heading-anchor\" href=\"#number-grouping\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code></p>\n<p>Nombre de chiffres groupés dans la partie entière d’un nombre.</p>\n<p>L’utilisation habituelle est d’afficher un séparateur de milliers. Si ce réglage est à <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>, aucun groupement n’est effectué. S’il est plus grand que <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>, <a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a> est utilisé comme séparateur entre ces groupes.</p>\n<p>Certaines locales utilisent un groupement des chiffres non uniforme, par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">10,00,00,000</span></code> pour <code class=\"docutils literal notranslate\"><span class=\"pre\">en_IN</span></code>. Dans ce cas, il est possible d’indiquer une liste avec les tailles de groupes de chiffres à appliquer. Le premier nombre définit la taille du groupe précédant le délimiteur décimal, et chaque nombre suivant définit la taille des groupes précédents. Si la liste se termine par <code class=\"docutils literal notranslate\"><span class=\"pre\">-1</span></code>, le groupement des chiffres s’arrête. Si la liste se termine par un <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>, la dernière taille de groupe est utilisée pour le reste du nombre.</p>\n<p>Tuple d’exemple pour <code class=\"docutils literal notranslate\"><span class=\"pre\">en_IN</span></code>:</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=\"n\">NUMBER_GROUPING</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">0</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Notez que le format induit par la locale a une priorité plus élevée et sera donc utilisé à la place.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DECIMAL_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DECIMAL_SEPARATOR</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-USE_THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span></code></a>.</p>\n</section>\n<section id=\"prepend-www\">\n<span id=\"std-setting-PREPEND_WWW\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">PREPEND_WWW</span></code><a class=\"heading-anchor\" href=\"#prepend-www\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il faut préfixer le sous-domaine « www. » aux URL qui ne l’ont pas. Utilisé seulement si <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code></a> est installé (voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/middleware/\"><span class=\"doc\">Intergiciels (« Middleware »)</span></a>). Voir aussi <a class=\"reference internal\" href=\"#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code></a>.</p>\n</section>\n<section id=\"root-urlconf\">\n<span id=\"std-setting-ROOT_URLCONF\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ROOT_URLCONF</span></code><a class=\"heading-anchor\" href=\"#root-urlconf\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :  non définie</p>\n<p>Une chaîne représentant le chemin d’importation Python complet vers votre URLconf racine, par exemple <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;mesapplisdjango.urls&quot;</span></code>. Il peut être surchargé pour chaque requête en définissant l’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">urlconf</span></code> de l’objet <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> entrant. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/urls/#how-django-processes-a-request\"><span class=\"std std-ref\">Processus de traitement des requêtes par Django</span></a> pour plus de détails.</p>\n</section>\n<section id=\"secret-key\">\n<span id=\"std-setting-SECRET_KEY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code><a class=\"heading-anchor\" href=\"#secret-key\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>La clé secrète d’une installation Django. Elle est utilisée dans le contexte de la <a class=\"reference internal\" href=\"/fr/6.1/topics/signing/\"><span class=\"doc\">signature cryptographique</span></a>, et doit être définie à une valeur unique et non prédictible.</p>\n<p><a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span></code></a> ajoute automatiquement une valeur <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code> générée aléatoirement dans chaque nouveau projet.</p>\n<p>L’emploi de cette clé ne devrait pas présupposer qu’il s’agit de texte ou d’octets. Chaque utilisation devrait faire appel à <a class=\"reference internal\" href=\"/fr/6.1/ref/utils/#django.utils.encoding.force_str\" title=\"django.utils.encoding.force_str\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_str()</span></code></a> ou <a class=\"reference internal\" href=\"/fr/6.1/ref/utils/#django.utils.encoding.force_bytes\" title=\"django.utils.encoding.force_bytes\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_bytes()</span></code></a> pour la convertir dans le type souhaité.</p>\n<p>Django refuse de démarrer si <a class=\"reference internal\" href=\"#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> n’est pas défini.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p><strong>Gardez cette valeur secrète.</strong></p>\n<p>Le fonctionnement de Django avec une clé <a class=\"reference internal\" href=\"#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> connue réduit à néant de nombreuses protections de sécurité de Django et peut amener à une élévation de privilèges et à des vulnérabilités d’exécution de code à distance.</p>\n</aside>\n<p>La clé secrète est utilisée pour :</p>\n<ul class=\"simple\">\n<li><p>Toutes les <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/\"><span class=\"doc\">sessions</span></a> si vous utilisez un autre moteur de sessions que <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions.backends.cache</span></code> ou que vous utilisez la méthode <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash\" title=\"django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_session_auth_hash()</span></code></a> par défaut.</p></li>\n<li><p>Tous les <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/\"><span class=\"doc\">messages</span></a> si vous utilisez les moteurs de stockage <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#django.contrib.messages.storage.cookie.CookieStorage\" title=\"django.contrib.messages.storage.cookie.CookieStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CookieStorage</span></code></a> ou <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#django.contrib.messages.storage.fallback.FallbackStorage\" title=\"django.contrib.messages.storage.fallback.FallbackStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FallbackStorage</span></code></a>.</p></li>\n<li><p>Tous les jetons de <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.views.PasswordResetView\" title=\"django.contrib.auth.views.PasswordResetView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PasswordResetView</span></code></a>.</p></li>\n<li><p>Tout emploi de la <a class=\"reference internal\" href=\"/fr/6.1/topics/signing/\"><span class=\"doc\">signature cryptographique</span></a>, sauf si une clé différente est fournie.</p></li>\n</ul>\n<p>Losrqu’une clé secrète ne correspond plus à <a class=\"reference internal\" href=\"#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> ou ne figure plus dans <a class=\"reference internal\" href=\"#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code></a>, tout les points ci-dessus seront invalidés. Lors d’une rotation de clé secrète, l’ancienne clé devrait être placée temporairement dans <a class=\"reference internal\" href=\"#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code></a>. Les clés secrètes ne sont pas utilisées pour les mots de passe des utilisateurs, la rotation des clés ne les touche donc pas.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Le fichier <code class=\"file docutils literal notranslate\"><span class=\"pre\">settings.py</span></code> créé par défaut par <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span></code></a> crée une clé <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code> unique par commodité.</p>\n</aside>\n</section>\n<section id=\"secret-key-fallbacks\">\n<span id=\"std-setting-SECRET_KEY_FALLBACKS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code><a class=\"heading-anchor\" href=\"#secret-key-fallbacks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code></p>\n<p>Une liste de clés secrètes de repli pour une installation particulière de Django. Elles permettent d’effectuer des rotations de la clé <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code>.</p>\n<p>Afin d’effectuer une rotation des clés secrètes, définissez une nouvelle <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code> et placez l’ancienne valeur au début de la liste <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code>. Puis enlevez les anciennes valeurs en fin de <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code> lorsque vous pensez être prêt à faire expirer les sessions, jetons de réinitialisation de mots de passe, etc. encore liés à ces anciennes clés.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Les opérations de signatures sont lourdes à calculer. La présence de plusieurs anciennes clés dans la liste <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code> ajoute de la charge supplémentaire à tous les contrôles qui ne correspondent pas à une clé précédente.</p>\n<p>Cela signifie que les valeurs de repli devraient être enlevées après un intervalle de temps approprié, permettant la rotation des clés.</p>\n</aside>\n<p>L’emploi des valeurs de clé secrète ne devrait pas présupposer qu’il s’agit de texte ou d’octets. Chaque utilisation devrait faire appel à <a class=\"reference internal\" href=\"/fr/6.1/ref/utils/#django.utils.encoding.force_str\" title=\"django.utils.encoding.force_str\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_str()</span></code></a> ou <a class=\"reference internal\" href=\"/fr/6.1/ref/utils/#django.utils.encoding.force_bytes\" title=\"django.utils.encoding.force_bytes\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_bytes()</span></code></a> pour la convertir dans le type souhaité.</p>\n</section>\n<section id=\"secure-content-type-nosniff\">\n<span id=\"std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_CONTENT_TYPE_NOSNIFF</span></code><a class=\"heading-anchor\" href=\"#secure-content-type-nosniff\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Si <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> définit l’en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#x-content-type-options\"><span class=\"std std-ref\">X-Content-Type-Options: nosniff</span></a> pour toutes les réponses qui ne l’ont pas déjà.</p>\n</section>\n<section id=\"secure-cross-origin-opener-policy\">\n<span id=\"std-setting-SECURE_CROSS_ORIGIN_OPENER_POLICY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_CROSS_ORIGIN_OPENER_POLICY</span></code><a class=\"heading-anchor\" href=\"#secure-cross-origin-opener-policy\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'same-origin'</span></code></p>\n<p>S’il ne contient pas <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> définit l’en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#cross-origin-opener-policy\"><span class=\"std std-ref\">Politique d’ouverture d’origine croisée</span></a> pour toutes les réponses qui ne l’ont pas déjà avec la valeur indiquée.</p>\n</section>\n<section id=\"secure-csp\">\n<span id=\"std-setting-SECURE_CSP\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_CSP</span></code><a class=\"heading-anchor\" href=\"#secure-csp\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code></p>\n<p>Ce réglage définit les directives utilisées par <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.csp.ContentSecurityPolicyMiddleware\" title=\"django.middleware.csp.ContentSecurityPolicyMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ContentSecurityPolicyMiddleware</span></code></a>, qui génère et ajoute un en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/csp/#csp-overview\"><span class=\"std std-ref\">Content-Security-Policy</span></a> (CSP) à toutes les réponses qui n’en contiennent pas déjà un.</p>\n<p>L’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Security-Policy</span></code> indique aux navigateurs de restreindre les ressources qu’une page a le droit de charger. Un CSP correctement configuré peut bloquer du contenu qui viole les règles définies, ce qui aide à combattre les attaques par script intersites et d’autres visant à l’injection de contenu, en déclarant explicitement les sources fiables pour les contenus tels que les scripts, les styles, les images, les polices et d’autres encore.</p>\n<p>Ce réglage doit être une correspondance (typiquement un dictionnaire) de noms de directives et de leurs valeurs. Chaque clé doit être une directive CSP valable, telle que <code class=\"docutils literal notranslate\"><span class=\"pre\">default-src</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">script-src</span></code>. La valeur correspondante peut être une liste, un tuple, ou un ensemble d’expressions sources ou d’URL admises pour cette directive. Si un ensemble est utilisé, il sera automatiquement trié pour garantir un résultat cohérent dans les en-têtes générés.</p>\n<p>Cet exemple illustre la structure attendue, utilisant les constantes définies dans <a class=\"reference internal\" href=\"/fr/6.1/ref/csp/#csp-constants\"><span class=\"std std-ref\">Constantes CSP</span></a>:</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=\"w\"> </span><span class=\"nn\">django.utils.csp</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CSP</span>\n\n<span class=\"n\">SECURE_CSP</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"n\">CSP</span><span class=\"o\">.</span><span class=\"n\">SELF</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;img-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;data:&quot;</span><span class=\"p\">,</span> <span class=\"n\">CSP</span><span class=\"o\">.</span><span class=\"n\">SELF</span><span class=\"p\">,</span> <span class=\"s2\">&quot;https://images.example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;frame-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"n\">CSP</span><span class=\"o\">.</span><span class=\"n\">NONE</span><span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<aside class=\"admonition-directives-validation admonition\">\n<p class=\"admonition-title\">Validation des directives</p>\n<p>L’intergiciel CSP de Django aide à construire et envoyer l’en-tête approprié en fonction des réglages, mais il ne <strong>valide pas</strong> que les directives et leurs valeurs soient conformes à la spécification CSP. Il est de votre responsabilité de vérifier que la syntaxe et la sémantique de la configuration sont correctes. Utilisez les outils de développement du navigateur ou des validateurs CSP externes durant le développement.</p>\n<p>Pour une liste des directives disponibles et de leurs valeurs, référez-vous à la <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#directives\">documentation MDN sur les directives CSP</a>.</p>\n</aside>\n</section>\n<section id=\"secure-csp-report-only\">\n<span id=\"std-setting-SECURE_CSP_REPORT_ONLY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_CSP_REPORT_ONLY</span></code><a class=\"heading-anchor\" href=\"#secure-csp-report-only\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code></p>\n<p>This setting is just like <a class=\"reference internal\" href=\"#std-setting-SECURE_CSP\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CSP</span></code></a>, but instead of enforcing the\npolicy, it instructs the\n<a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.csp.ContentSecurityPolicyMiddleware\" title=\"django.middleware.csp.ContentSecurityPolicyMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ContentSecurityPolicyMiddleware</span></code></a> to apply a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Security-Policy-Report-Only</span></code> header to responses, which allows\nbrowsers to monitor and report policy violations without blocking content. This\nis useful for testing and refining a policy before enforcement.</p>\n<p>Most browsers log CSP violations to the developer console and can optionally\nsend them to a reporting endpoint. To collect these reports, the <code class=\"docutils literal notranslate\"><span class=\"pre\">report-uri</span></code>\ndirective must be defined (see <a class=\"reference internal\" href=\"/fr/6.1/ref/csp/#csp-reports\"><span class=\"std std-ref\">Rapports de violation de politique</span></a> for more details).</p>\n<p>As noted in the <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only\">MDN documentation on Content-Security-Policy-Report-Only</a>,\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">report-uri</span></code> directive must be specified for reports to be sent;\notherwise, the header has no reporting effect (other than logging to the\nbrowser’s developer tools console).</p>\n<p>Following the example from the <a class=\"reference internal\" href=\"#std-setting-SECURE_CSP\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CSP</span></code></a> setting:</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=\"w\"> </span><span class=\"nn\">django.utils.csp</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CSP</span>\n\n<span class=\"n\">SECURE_CSP_REPORT_ONLY</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"n\">CSP</span><span class=\"o\">.</span><span class=\"n\">SELF</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;img-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;data:&quot;</span><span class=\"p\">,</span> <span class=\"n\">CSP</span><span class=\"o\">.</span><span class=\"n\">SELF</span><span class=\"p\">,</span> <span class=\"s2\">&quot;https://images.example.com&quot;</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;frame-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"n\">CSP</span><span class=\"o\">.</span><span class=\"n\">NONE</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;report-uri&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/my-site/csp/reports/&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</section>\n<section id=\"secure-hsts-include-subdomains\">\n<span id=\"std-setting-SECURE_HSTS_INCLUDE_SUBDOMAINS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_INCLUDE_SUBDOMAINS</span></code><a class=\"heading-anchor\" href=\"#secure-hsts-include-subdomains\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Si <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> ajoute la directive <code class=\"docutils literal notranslate\"><span class=\"pre\">includeSubDomains</span></code> à l’en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">Sécurité de transport HTTP stricte (HSTS)</span></a>. Il n’a pas d’effet tant que <a class=\"reference internal\" href=\"#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a> ne contient pas une valeur différente de zéro.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p>Une définition incorrecte de ce paramètre peut casser votre site de manière irréversible (pour la durée de <a class=\"reference internal\" href=\"#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a>). Lisez d’abord la documentation <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">Sécurité de transport HTTP stricte (HSTS)</span></a>.</p>\n</aside>\n</section>\n<section id=\"secure-hsts-preload\">\n<span id=\"std-setting-SECURE_HSTS_PRELOAD\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_PRELOAD</span></code><a class=\"heading-anchor\" href=\"#secure-hsts-preload\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Si <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> ajoute la directive <code class=\"docutils literal notranslate\"><span class=\"pre\">preload</span></code> à l’en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">Sécurité de transport HTTP stricte (HSTS)</span></a>. Il n’a pas d’effet tant que <a class=\"reference internal\" href=\"#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a> ne contient pas une valeur différente de zéro.</p>\n</section>\n<section id=\"secure-hsts-seconds\">\n<span id=\"std-setting-SECURE_HSTS_SECONDS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code><a class=\"heading-anchor\" href=\"#secure-hsts-seconds\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code></p>\n<p>Si défini à un nombre entier autre que 0, l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> définit l’en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">Sécurité de transport HTTP stricte (HSTS)</span></a> pour toutes les réponses qui ne l’ont pas déjà.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p>Une définition incorrecte de ce paramètre peut casser votre site de manière irréversible (pour un certain temps). Lisez d’abord la documentation <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#http-strict-transport-security\"><span class=\"std std-ref\">Sécurité de transport HTTP stricte (HSTS)</span></a>.</p>\n</aside>\n</section>\n<section id=\"secure-proxy-ssl-header\">\n<span id=\"std-setting-SECURE_PROXY_SSL_HEADER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_PROXY_SSL_HEADER</span></code><a class=\"heading-anchor\" href=\"#secure-proxy-ssl-header\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Un tuple représentant une combinaison en-tête/valeur HTTP signifiant qu’une requête est sécurisée. Ce réglage contrôle le comportement de la méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">is_secure()</span></code> de l’objet requête.</p>\n<p>Par défaut, <code class=\"docutils literal notranslate\"><span class=\"pre\">is_secure()</span></code> détermine si une requête est sécurisée en vérifiant que le protocole de l’URL demandée utilise <code class=\"docutils literal notranslate\"><span class=\"pre\">https://</span></code>. Cette méthode est importante pour la protection CSRF de Django et peut être utilisée par votre propre code ou des applications tierces.</p>\n<p>Si votre application Django est derrière un serveur mandataire (proxy), celui-ci peut masquer le fait que la requête est en HTTPS. Si une connexion non HTTPS est établie entre le serveur mandataire et Django, <code class=\"docutils literal notranslate\"><span class=\"pre\">is_secure()</span></code> renvoie toujours <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, même pour les requêtes qui ont été initiées en HTTPS par l’utilisateur final. Au contraire, si une connexion HTTPS est établie entre le serveur mandataire et Django, <code class=\"docutils literal notranslate\"><span class=\"pre\">is_secure()</span></code> renvoie toujours <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, même pour les requêtes qui ont été originellement initiées en HTTP.</p>\n<p>Dans cette situation, configurez votre serveur mandataire pour qu’il définisse un en-tête HTTP indiquant à Django si la requête est arrivée en HTTPS ; le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_PROXY_SSL_HEADER</span></code> permet de signaler à Django le nom de l’en-tête où il doit chercher cette information.</p>\n<p>Définissez un tuple contenant deux éléments : le nom de l’en-tête à examiner et la valeur requise. 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=\"n\">SECURE_PROXY_SSL_HEADER</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"s2\">&quot;HTTP_X_FORWARDED_PROTO&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;https&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Cela indique à Django de faire confiance à l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Proto</span></code> ajouté par le serveur mandataire et que la requête provient bien d’une connexion sécurisée (c’est-à-dire qu’elle est arrivée par HTTPS), quand :</p>\n<ul class=\"simple\">\n<li><p>la valeur de l’en-tête est <code class=\"docutils literal notranslate\"><span class=\"pre\">'https'</span></code> ou</p></li>\n<li><p>sa valeur initiale la plus à gauche est <code class=\"docutils literal notranslate\"><span class=\"pre\">'https'</span></code> dans le cas d’une liste de protocoles séparés par une virgule (ex: <code class=\"docutils literal notranslate\"><span class=\"pre\">'https,http,http'</span></code>).</p></li>\n</ul>\n<p>Ce réglage ne doit être défini qu’à la condition que vous soyez maître du serveur mandataire ou que vous ayez la garantie que l’en-tête soit ajouté ou enlevé de manière appropriée.</p>\n<p>Notez que le nom de l’en-tête doit être dans le format utilisé par <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META</span></code>, tout en majuscules et commençant probablement par <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_</span></code> (souvenez-vous que Django ajoute automatiquement <code class=\"docutils literal notranslate\"><span class=\"pre\">'HTTP_'</span></code> au début des noms d’en-têtes X avant de les rendre accessibles dans <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META</span></code>).</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p><strong>La modification de ce réglage peut compromettre la sécurité de votre site. Assurez-vous de bien comprendre votre configuration avant de le modifier.</strong></p>\n<p>Assurez-vous que TOUS les points ci-après sont vrais avant de définir ce réglage (en prenant comme exemple les valeurs ci-dessus) :</p>\n<ul class=\"simple\">\n<li><p>Votre application Django est derrière un serveur mandataire.</p></li>\n<li><p>Le serveur mandataire ôte les en-têtes <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Proto</span></code> de toute requête entrante, même quand ils contiennent une liste de protocoles séparés par des virgules. En d’autres termes, si des utilisateurs ajoutent cet en-tête dans leurs requêtes, le serveur mandataire n’en tient aucun compte.</p></li>\n<li><p>Le serveur mandataire définit l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Proto</span></code> et le transmet à Django, mais seulement pour les requêtes arrivées par HTTPS.</p></li>\n</ul>\n<p>Si l’un de ces points n’est pas réalisé, il vaut mieux laisser ce réglage à <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> et trouver une autre façon de déterminer la provenance HTTPS, peut-être au moyen d’un middleware personnalisé.</p>\n</aside>\n</section>\n<section id=\"secure-redirect-exempt\">\n<span id=\"std-setting-SECURE_REDIRECT_EXEMPT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_REDIRECT_EXEMPT</span></code><a class=\"heading-anchor\" href=\"#secure-redirect-exempt\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Si un chemin d’URL correspond à une expression régulière de cette liste, la requête ne sera pas redirigée vers HTTPS. Comme l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> enlève les barres obliques initiales des chemins d’URL, les motifs ne doivent pas les inclure, par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_REDIRECT_EXEMPT</span> <span class=\"pre\">=</span> <span class=\"pre\">[r'^no-ssl/$',</span> <span class=\"pre\">…]</span></code>. Si <a class=\"reference internal\" href=\"#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, ce réglage n’a pas d’effet.</p>\n</section>\n<section id=\"secure-referrer-policy\">\n<span id=\"std-setting-SECURE_REFERRER_POLICY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code><a class=\"heading-anchor\" href=\"#secure-referrer-policy\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'same-origin'</span></code></p>\n<p>S’il est configuré, l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> définit l’en-tête <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#referrer-policy\"><span class=\"std std-ref\">Politique de référencement</span></a> pour toutes les réponses qui ne l’ont pas déjà avec la valeur indiquée.</p>\n</section>\n<section id=\"secure-ssl-host\">\n<span id=\"std-setting-SECURE_SSL_HOST\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_HOST</span></code><a class=\"heading-anchor\" href=\"#secure-ssl-host\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Si défini à une chaîne (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">secure.example.com</span></code>), toutes les redirections SSL seront redirigées vers cet hôte au lieu de l’hôte d’origine (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">www.example.com</span></code>). Si <a class=\"reference internal\" href=\"#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, ce réglage n’as pas d’effet.</p>\n</section>\n<section id=\"secure-ssl-redirect\">\n<span id=\"std-setting-SECURE_SSL_REDIRECT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code><a class=\"heading-anchor\" href=\"#secure-ssl-redirect\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Si <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a> <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#ssl-redirect\"><span class=\"std std-ref\">redirige</span></a> toutes les requêtes non HTTPS vers HTTPS (sauf pour les URL correspondant à une expression régulière figurant dans <a class=\"reference internal\" href=\"#std-setting-SECURE_REDIRECT_EXEMPT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REDIRECT_EXEMPT</span></code></a>).</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Si en définissant ce réglage à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> vous obtenez des redirections infinies, cela signifie probablement que votre site fonctionne derrière un serveur mandataire (proxy) et ne peut pas savoir quelles requêtes sont sécurisées et celles qui ne le sont pas. Il est probable que le serveur mandataire définisse un en-tête pour indiquer les requêtes sécurisées ; vous pouvez alors corriger le problème en cherchant cet en-tête et en ajoutant son nom dans le réglage <a class=\"reference internal\" href=\"#std-setting-SECURE_PROXY_SSL_HEADER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_PROXY_SSL_HEADER</span></code></a>.</p>\n</aside>\n</section>\n<section id=\"serialization-modules\">\n<span id=\"std-setting-SERIALIZATION_MODULES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SERIALIZATION_MODULES</span></code><a class=\"heading-anchor\" href=\"#serialization-modules\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :  non définie</p>\n<p>Un dictionnaire de modules contenant des définitions de sérialiseurs (sous forme de chaînes) dont les clés sont des identifiants textuels pour le type de sérialisation correspondant. Par exemple, pour définir un sérialiseur YAML :</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=\"n\">SERIALIZATION_MODULES</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;yaml&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;path.to.yaml_serializer&quot;</span><span class=\"p\">}</span>\n</code></pre></div>\n</section>\n<section id=\"server-email\">\n<span id=\"std-setting-SERVER_EMAIL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code><a class=\"heading-anchor\" href=\"#server-email\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'root&#64;localhost'</span></code></p>\n<p>L’adresse de courriel de provenance des messages d’erreur, tels que ceux envoyés aux <a class=\"reference internal\" href=\"#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> et aux <a class=\"reference internal\" href=\"#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a>. Cette adresse est utilisée dans l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">From:</span></code> et accepte tout format valide pour le protocole d’envoi de courriel configuré.</p>\n<p>To build an address with a display name from variable content, see\n<a class=\"reference internal\" href=\"/fr/6.1/topics/email/#formatting-addresses\"><span class=\"std std-ref\">Formatting email addresses</span></a>.</p>\n<aside class=\"admonition-why-are-my-emails-sent-from-a-different-address admonition\">\n<p class=\"admonition-title\">Pourquoi mes courriels sont-ils envoyés à partir d’une autre adresse ?</p>\n<p>Cette adresse est uniquement utilisée pour les messages d’erreur. Il ne s’agit <em>pas</em> de l’adresse utilisée par <a class=\"reference internal\" href=\"/fr/6.1/topics/email/#django.core.mail.send_mail\" title=\"django.core.mail.send_mail\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">send_mail()</span></code></a> pour l’envoi de courriers électroniques habituels ; pour cela, voir <a class=\"reference internal\" href=\"#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code></a>.</p>\n</aside>\n</section>\n<section id=\"short-date-format\">\n<span id=\"std-setting-SHORT_DATE_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code><a class=\"heading-anchor\" href=\"#short-date-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'m/d/Y'</span></code> (ex . : <code class=\"docutils literal notranslate\"><span class=\"pre\">12/31/2003</span></code>)</p>\n<p>Un format disponible pour l’affichage des champs dates dans les gabarits. Notez que le format induit par la locale a une priorité plus élevée et remplacera ce format. Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-SHORT_DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"short-datetime-format\">\n<span id=\"std-setting-SHORT_DATETIME_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code><a class=\"heading-anchor\" href=\"#short-datetime-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'m/d/Y</span> <span class=\"pre\">P'</span></code> (ex . : <code class=\"docutils literal notranslate\"><span class=\"pre\">12/31/2003</span> <span class=\"pre\">4</span> <span class=\"pre\">p.m.</span></code>)</p>\n<p>Un format disponible pour l’affichage des champs dates/heures dans les gabarits. Notez que le format induit par la locale a une priorité plus élevée et remplacera ce format. Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-SHORT_DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"signed-cookie-legacy-salt-fallback\">\n<span id=\"std-setting-SIGNED_COOKIE_LEGACY_SALT_FALLBACK\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SIGNED_COOKIE_LEGACY_SALT_FALLBACK</span></code><a class=\"heading-anchor\" href=\"#signed-cookie-legacy-salt-fallback\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"5.2.15\">\n<p class=\"version-note-title\">New in Django 5.2.15</p></aside>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Controls whether <a class=\"reference internal\" href=\"/fr/6.1/ref/request-response/#django.http.HttpRequest.get_signed_cookie\" title=\"django.http.HttpRequest.get_signed_cookie\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_signed_cookie()</span></code></a> accepts\ncookies signed with Django’s historical signed-cookie salt derivation based on\n<code class=\"docutils literal notranslate\"><span class=\"pre\">key</span> <span class=\"pre\">+</span> <span class=\"pre\">salt</span></code>.</p>\n<p>Set this to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> to accept those legacy signed cookies in addition to\ncookies signed with Django’s current unambiguous signed-cookie salt derivation.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>In older versions, the default was <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This transitional setting will be removed in Django 7.0, when legacy signed\ncookies will no longer be accepted.</p>\n</aside>\n</section>\n<section id=\"signing-backend\">\n<span id=\"std-setting-SIGNING_BACKEND\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SIGNING_BACKEND</span></code><a class=\"heading-anchor\" href=\"#signing-backend\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.core.signing.TimestampSigner'</span></code></p>\n<p>Le moteur utilisé pour signer les cookies et d’autres données.</p>\n<p>Voir aussi la documentation sur <a class=\"reference internal\" href=\"/fr/6.1/topics/signing/\"><span class=\"doc\">Signatures cryptographiques</span></a>.</p>\n</section>\n<section id=\"silenced-system-checks\">\n<span id=\"std-setting-SILENCED_SYSTEM_CHECKS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SILENCED_SYSTEM_CHECKS</span></code><a class=\"heading-anchor\" href=\"#silenced-system-checks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste d’identifiants de messages générés par l’infrastructure de contrôle système (par ex: <code class=\"docutils literal notranslate\"><span class=\"pre\">[&quot;models.W001&quot;]</span></code>) que vous souhaitez ignorer de manière permanente. Les contrôles ainsi masqués n’apparaissent plus dans la console.</p>\n<p>Voir aussi la documentation <a class=\"reference internal\" href=\"/fr/6.1/ref/checks/\"><span class=\"doc\">Infrastructure de contrôle système</span></a>.</p>\n</section>\n<section id=\"storages\">\n<span id=\"std-setting-STORAGES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code><a class=\"heading-anchor\" href=\"#storages\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.files.storage.FileSystemStorage&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">},</span>\n    <span class=\"s2\">&quot;staticfiles&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.contrib.staticfiles.storage.StaticFilesStorage&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Un dictionnaire contenant les réglages de tous les stockages à utiliser avec Django. C’est un dictionnaire imbriqué dont les contenus font correspondre l’alias de stockage avec un dictionnaire contenant les options de chacun des stockages.</p>\n<p>Le choix d’alias de stockage est libre. Cependant, deux noms d’alias ont une signification particulière :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> pour la <a class=\"reference internal\" href=\"/fr/6.1/topics/files/\"><span class=\"doc\">gestion des fichiers</span></a>. <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/files/storage/#django.core.files.storage.FileSystemStorage\" title=\"django.core.files.storage.FileSystemStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.FileSystemStorage</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code> est le moteur de stockage par défaut.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> pour la <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/\"><span class=\"doc\">gestion des fichiers statiques</span></a>. <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.StaticFilesStorage\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.storage.StaticFilesStorage</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code> est le moteur de stockage par défaut.</p></li>\n</ul>\n<p>Voici un exemple d’extrait de <code class=\"docutils literal notranslate\"><span class=\"pre\">settings.py</span></code> définissant un stockage de fichiers personnalisé appelé <code class=\"docutils literal notranslate\"><span class=\"pre\">example</span></code>:</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=\"n\">STORAGES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"s2\">&quot;example&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.core.files.storage.FileSystemStorage&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;OPTIONS&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;location&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/example&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;base_url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;/example/&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">},</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Les <code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code> sont transmises au moteur <code class=\"docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code> comme paramètres <code class=\"docutils literal notranslate\"><span class=\"pre\">**kwargs</span></code> lors de son initialisation.</p>\n<p>Une instance prête à l’emploi des moteurs de stockage peut être obtenue à partir de <a class=\"reference internal\" href=\"/fr/6.1/ref/files/storage/#django.core.files.storage.storages\" title=\"django.core.files.storage.storages\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.storages</span></code></a>. Utilisez une clé correspondant à la définition du moteur dans  <a class=\"reference internal\" href=\"#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>.</p>\n<aside class=\"admonition-is-my-value-merged-with-the-default-value admonition\">\n<p class=\"admonition-title\">Ma valeur est-elle fusionnée avec les valeurs par défaut ?</p>\n<p>La définition de ce réglage écrase les valeurs par défaut et il n’y a donc <em>pas</em> de fusion  avec le réglage par défaut.</p>\n</aside>\n</section>\n<section id=\"tasks\">\n<span id=\"std-setting-TASKS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TASKS</span></code><a class=\"heading-anchor\" href=\"#tasks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Valeur par défaut :</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=\"p\">{</span>\n    <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.tasks.backends.immediate.ImmediateBackend&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>A dictionary containing the settings for all Task backends to be used with\nDjango. It is a nested dictionary whose contents maps backend aliases to a\ndictionary containing the options for each backend.</p>\n<p>The <a class=\"reference internal\" href=\"#std-setting-TASKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TASKS</span></code></a> setting must configure a <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> backend; any number\nof additional backends may also be specified. Depending on which backend is\nused, other options may be required. The following options are available as\nstandard.</p>\n<section id=\"std-setting-TASKS-BACKEND\">\n<span id=\"id8\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code><a class=\"heading-anchor\" href=\"#std-setting-TASKS-BACKEND\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (Chaîne vide)</p>\n<p>The Tasks backend to use. The built-in backends are:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.tasks.backends.dummy.DummyBackend'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.tasks.backends.immediate.ImmediateBackend'</span></code></p></li>\n</ul>\n<p>You can use a backend that doesn’t ship with Django by setting\n<a class=\"reference internal\" href=\"#std-setting-TASKS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code></a> to a fully-qualified path of a backend\nclass (i.e. <code class=\"docutils literal notranslate\"><span class=\"pre\">mypackage.backends.whatever.WhateverBackend</span></code>).</p>\n</section>\n<section id=\"queues\">\n<span id=\"std-setting-TASKS-QUEUES\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">QUEUES</span></code><a class=\"heading-anchor\" href=\"#queues\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Default: <code class=\"docutils literal notranslate\"><span class=\"pre\">[&quot;default&quot;]</span></code></p>\n<p>Specify the queue names supported by the backend. This can be used to ensure\nTasks aren’t enqueued to queues which do not exist.</p>\n<p>To disable queue name validation, set to an empty list (<code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code>).</p>\n</section>\n<section id=\"std-setting-TASKS-OPTIONS\">\n<span id=\"id9\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code><a class=\"heading-anchor\" href=\"#std-setting-TASKS-OPTIONS\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code></p>\n<p>Extra parameters to pass to the Task backend. Available parameters vary\ndepending on the Task backend.</p>\n</section>\n</section>\n<section id=\"templates\">\n<span id=\"std-setting-TEMPLATES\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code><a class=\"heading-anchor\" href=\"#templates\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Une liste contenant les réglages de tous les moteurs de gabarit à utiliser avec Django. Chaque élément de la liste est un dictionnaire contenant les options de chacun des moteurs.</p>\n<p>Voici une configuration qui indique au moteur de gabarit de Django de charger les gabarits à partir du sous-répertoire <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code> de chaque application installée :</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=\"n\">TEMPLATES</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;django.template.backends.django.DjangoTemplates&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;APP_DIRS&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Les options suivantes sont disponibles pour tous les moteurs.</p>\n<section id=\"std-setting-TEMPLATES-BACKEND\">\n<span id=\"id10\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code><a class=\"heading-anchor\" href=\"#std-setting-TEMPLATES-BACKEND\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut :  non définie</p>\n<p>Le moteur de gabarit à utiliser. Les moteurs de gabarit intégrés à Django sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.backends.django.DjangoTemplates'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.backends.jinja2.Jinja2'</span></code></p></li>\n</ul>\n<p>Vous pouvez utiliser un moteur de gabarit non livré avec Django en définissant <code class=\"docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code> à un chemin complètement qualifié (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">monpaquet.moteurs.Backend</span></code>).</p>\n</section>\n<section id=\"std-setting-TEMPLATES-NAME\">\n<span id=\"id11\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">NAME</span></code><a class=\"heading-anchor\" href=\"#std-setting-TEMPLATES-NAME\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut :: voir ci-dessous</p>\n<p>L’alias de ce moteur de gabarit particulier. Il s’agit d’un identifiant qui permet de choisir un moteur pour le processus de rendu. Les alias doivent être uniques parmi tous les moteurs de gabarit configurés.</p>\n<p>Sa valeur par défaut contient le nom du module définissant la classe du moteur, c’est-à-dire l’avant-dernier élément de <a class=\"reference internal\" href=\"#std-setting-TEMPLATES-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code></a>, lorsque celui-ci est présent. Par exemple, si le moteur est <code class=\"docutils literal notranslate\"><span class=\"pre\">'mypackage.whatever.Backend'</span></code>, le nom par défaut vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">'whatever'</span></code>.</p>\n</section>\n<section id=\"dirs\">\n<span id=\"std-setting-TEMPLATES-DIRS\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DIRS</span></code><a class=\"heading-anchor\" href=\"#dirs\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Répertoires dans lesquels le moteur recherche des fichiers sources de gabarits, dans l’ordre de leur recherche.</p>\n</section>\n<section id=\"app-dirs\">\n<span id=\"std-setting-TEMPLATES-APP_DIRS\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">APP_DIRS</span></code><a class=\"heading-anchor\" href=\"#app-dirs\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique si le moteur recherche des fichiers sources de gabarits dans les applications installées.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Le fichier <code class=\"file docutils literal notranslate\"><span class=\"pre\">settings.py</span></code> créé par défaut par <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span></code></a> définit <code class=\"docutils literal notranslate\"><span class=\"pre\">'APP_DIRS':</span> <span class=\"pre\">True</span></code>.</p>\n</aside>\n</section>\n<section id=\"std-setting-TEMPLATES-OPTIONS\">\n<span id=\"id12\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code><a class=\"heading-anchor\" href=\"#std-setting-TEMPLATES-OPTIONS\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">{}</span></code> (dictionnaire vide)</p>\n<p>Paramètres supplémentaires à passer au moteur de gabarit. Les paramètres disponibles varient en fonction du moteur. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> et <a class=\"reference internal\" href=\"/fr/6.1/topics/templates/#django.template.backends.jinja2.Jinja2\" title=\"django.template.backends.jinja2.Jinja2\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Jinja2</span></code></a> pour les options des moteurs intégrés.</p>\n</section>\n</section>\n<section id=\"test-runner\">\n<span id=\"std-setting-TEST_RUNNER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TEST_RUNNER</span></code><a class=\"heading-anchor\" href=\"#test-runner\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.runner.DiscoverRunner</span></code></p>\n<p>Le nom de la classe à utiliser pour lancer la suite de tests. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/advanced/#other-testing-frameworks\"><span class=\"std std-ref\">Utilisation d’autres infrastructures de test</span></a>.</p>\n</section>\n<section id=\"test-non-serialized-apps\">\n<span id=\"std-setting-TEST_NON_SERIALIZED_APPS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TEST_NON_SERIALIZED_APPS</span></code><a class=\"heading-anchor\" href=\"#test-non-serialized-apps\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Afin de pouvoir restaurer l’état de la base de données entre les tests pour les classes <code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionTestCase</span></code> et les moteurs de base de données non transactionnels, Django <a class=\"reference internal\" href=\"/fr/6.1/topics/testing/overview/#test-case-serialized-rollback\"><span class=\"std std-ref\">sérialise le contenu de toutes les applications</span></a> lorsqu’il lance la suite de tests pour pouvoir ensuite recharger ces données copiées avant de lancer les tests qui ont en besoin.</p>\n<p>Cela ralentit le démarrage du lanceur de tests ; si vous savez que certaines applications n’ont pas besoin de cette fonctionnalité, vous pouvez ajouter leur nom complet dans ce réglage (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.contenttypes'</span></code>) pour les exclure du processus de sérialisation.</p>\n</section>\n<section id=\"thousand-separator\">\n<span id=\"std-setting-THOUSAND_SEPARATOR\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code><a class=\"heading-anchor\" href=\"#thousand-separator\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">','</span></code> (virgule)</p>\n<p>Séparateur de milliers utilisé par défaut lors de la mise en forme de nombres. Ce réglage n’est utilisé que lorsque <a class=\"reference internal\" href=\"#std-setting-USE_THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span></code></a> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> et que <a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a> est plus grand que <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>.</p>\n<p>Notez que le format induit par la locale a une priorité plus élevée et sera donc utilisé à la place.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-DECIMAL_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DECIMAL_SEPARATOR</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-USE_THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span></code></a>.</p>\n</section>\n<section id=\"time-format\">\n<span id=\"std-setting-TIME_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code><a class=\"heading-anchor\" href=\"#time-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'P'`</span> <span class=\"pre\">(ex</span> <span class=\"pre\">.</span> <span class=\"pre\">:</span> <span class=\"pre\">``4</span> <span class=\"pre\">p.m.</span></code>)</p>\n<p>Le format par défaut pour l’affichage des champs heures dans les différentes parties du système. Notez que le format induit par la locale a une priorité plus élevée et remplacera ce format. Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"time-input-formats\">\n<span id=\"std-setting-TIME_INPUT_FORMATS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code><a class=\"heading-anchor\" href=\"#time-input-formats\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">[</span>\n    <span class=\"s2\">&quot;%H:%M:%S&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;14:30:59&#39;</span>\n    <span class=\"s2\">&quot;%H:%M:%S.</span><span class=\"si\">%f</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;14:30:59.000200&#39;</span>\n    <span class=\"s2\">&quot;%H:%M&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># &#39;14:30&#39;</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Une liste de formats qui seront acceptés lors de la saisie de données dans un champ heure. Les formats seront testés dans l’ordre et le premier correspondant sera utilisé. Notez que ces chaînes de format utilisent la <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior\" title=\"(disponible dans Python v3.14)\"><span class=\"xref std std-ref\">syntaxe du module datetime</span></a> de Python, et non pas celle des chaînes de format du filtre de gabarit <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a>.</p>\n<p>Le format induit par la locale a une priorité plus élevée et remplace ce séparateur.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a>.</p>\n</section>\n<section id=\"std-setting-TIME_ZONE\">\n<span id=\"id13\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code><a class=\"heading-anchor\" href=\"#std-setting-TIME_ZONE\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'America/Chicago'</span></code></p>\n<p>Une chaîne représentant le fuseau horaire pour cette installation. Voir la <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\">liste des fuseaux horaires</a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Comme Django a été initialement publié avec le réglage <a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a> contenant <code class=\"docutils literal notranslate\"><span class=\"pre\">'America/Chicago'</span></code>, le réglage global (utilisé si aucun n’est défini dans le <code class=\"docutils literal notranslate\"><span class=\"pre\">settings.py</span></code> du projet) reste <code class=\"docutils literal notranslate\"><span class=\"pre\">'America/Chicago'</span></code> pour garantir la rétrocompatibilité. Les nouveaux gabarits de projet par défaut utilisent <code class=\"docutils literal notranslate\"><span class=\"pre\">'UTC'</span></code>.</p>\n</aside>\n<p>Notez que cela ne correspond pas forcément au fuseau horaire du serveur. Par exemple, il est imaginable qu’un site serve plusieurs instances de sites Django, chacun ayant leur propre réglage de fuseau horaire.</p>\n<p>Lorsque <a class=\"reference internal\" href=\"#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, ce réglage définit le fuseau horaire avec lequel Django stocke tous les objets dates/heures. Lorsque <a class=\"reference internal\" href=\"#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, il s’agit alors du fuseau horaire que Django utilise par défaut pour afficher les dates/heures dans les gabarits et pour interpréter les valeurs dates/heures saisies dans les formulaires.</p>\n<p>Dans les environnements Unix (où <a class=\"reference external\" href=\"https://docs.python.org/3/library/time.html#time.tzset\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">time.tzset()</span></code></a> est implémenté), Django définit la variable <code class=\"docutils literal notranslate\"><span class=\"pre\">os.environ['TZ']</span></code> au fuseau horaire défini dans le réglage <a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a>. Ainsi, toutes les vues et tous les modèles opèrent automatiquement dans ce fuseau horaire. Cependant, Django ne définit pas la variable d’environnement <code class=\"docutils literal notranslate\"><span class=\"pre\">TZ</span></code> si vous utilisez l’option de configuration manuelle décrite dans <a class=\"reference internal\" href=\"/fr/6.1/topics/settings/#settings-without-django-settings-module\"><span class=\"std std-ref\">configuration manuelle des réglages</span></a>. Si Django ne définit pas la variable d’environnement <code class=\"docutils literal notranslate\"><span class=\"pre\">TZ</span></code>, c’est à vous de vous assurer que les processus fonctionnent dans le bon environnement.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Django ne peut pas utiliser de fuseaux horaires différents du système de façon fiable dans un environnement Windows. Si vous faites fonctionner Django avec Windows, <a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a> doit être réglé sur le même fuseau horaire que le système.</p>\n</aside>\n</section>\n<section id=\"use-blank-choice-dash\">\n<span id=\"std-setting-USE_BLANK_CHOICE_DASH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_BLANK_CHOICE_DASH</span></code><a class=\"heading-anchor\" href=\"#use-blank-choice-dash\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.1\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>The default blank choice label in <code class=\"docutils literal notranslate\"><span class=\"pre\">Select</span></code> widgets was changed from\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;---------&quot;</span></code> to <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.BLANK_CHOICE_LABEL</span></code>. Set this\ntransitional setting to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> to revert to the previous label.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.1: </span>This setting will be removed in Django 7.0. To use a custom default blank\nchoice label, override <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.BLANK_CHOICE_LABEL</span></code> in\nthe app’s <code class=\"docutils literal notranslate\"><span class=\"pre\">ready()</span></code> method.</p>\n</aside>\n</section>\n<section id=\"use-i18n\">\n<span id=\"std-setting-USE_I18N\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_I18N</span></code><a class=\"heading-anchor\" href=\"#use-i18n\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Une valeur booléenne indiquant si le système de traduction de Django doit être activé. C’est un moyen de le désactiver pour gagner un peu de performances. Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, Django optimise son fonctionnement pour ne pas charger le mécanisme de traduction.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Le fichier <code class=\"file docutils literal notranslate\"><span class=\"pre\">settings.py</span></code> créé par défaut par <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span></code></a> définit <code class=\"docutils literal notranslate\"><span class=\"pre\">USE_I18N</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code> par commodité.</p>\n</aside>\n</section>\n<section id=\"use-thousand-separator\">\n<span id=\"std-setting-USE_THOUSAND_SEPARATOR\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span></code><a class=\"heading-anchor\" href=\"#use-thousand-separator\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Une valeur booléenne indiquant si les nombres doivent être affichés avec des séparateurs de milliers. Lorsque ce réglage vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, Django met en forme les nombres en utilisant les valeurs des réglages <a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a>. Ces deux derniers réglages peuvent aussi être définis par la locale active qui est prioritaire.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-DECIMAL_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DECIMAL_SEPARATOR</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a>.</p>\n</section>\n<section id=\"use-tz\">\n<span id=\"std-setting-USE_TZ\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code><a class=\"heading-anchor\" href=\"#use-tz\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Une valeur booléenne indiquant si les dates/heures sont conscientes de leur fuseau horaire. Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, Django utilise en interne des dates/heures conscientes de leur fuseau horaire.</p>\n<p>Lorsque <code class=\"docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code> vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, Django utilise des dates/heures naïves en temps local, sauf si des dates mises en forme en ISO 8601 et contenant un fuseau horaire sont interprétées ; dans ce cas, le fuseau horaire est conservé.</p>\n<p>Voir aussi <a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-USE_I18N\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_I18N</span></code></a>.</p>\n</section>\n<section id=\"use-x-forwarded-host\">\n<span id=\"std-setting-USE_X_FORWARDED_HOST\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_HOST</span></code><a class=\"heading-anchor\" href=\"#use-x-forwarded-host\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Une valeur booléenne indiquant si l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Host</span></code> doit être favorisé aux dépends de l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code>. Ceci ne devrait être activé que dans le cas où un serveur mandataire définit cet en-tête en amont de votre application.</p>\n<p>Ce réglage a la priorité sur <a class=\"reference internal\" href=\"#std-setting-USE_X_FORWARDED_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_PORT</span></code></a>. Selon la <span class=\"target\" id=\"index-4\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7239.html#section-5.3\"><strong>RFC 7239 Section 5.3</strong></a>, l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Host</span></code> peut inclure le numéro de port, auquel cas il ne faudrait pas utiliser <a class=\"reference internal\" href=\"#std-setting-USE_X_FORWARDED_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_PORT</span></code></a>.</p>\n</section>\n<section id=\"use-x-forwarded-port\">\n<span id=\"std-setting-USE_X_FORWARDED_PORT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_PORT</span></code><a class=\"heading-anchor\" href=\"#use-x-forwarded-port\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Une valeur booléenne indiquant si l’en-tête <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Forwarded-Port</span></code> doit être favorisé aux dépends de la variable <code class=\"docutils literal notranslate\"><span class=\"pre\">META</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_PORT</span></code>. Ceci ne devrait être activé que dans le cas où un serveur mandataire définit cet en-tête en amont de votre application.</p>\n<p><a class=\"reference internal\" href=\"#std-setting-USE_X_FORWARDED_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_HOST</span></code></a> a la priorité sur ce réglage.</p>\n</section>\n<section id=\"urlize-assume-https\">\n<span id=\"std-setting-URLIZE_ASSUME_HTTPS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">URLIZE_ASSUME_HTTPS</span></code><a class=\"heading-anchor\" href=\"#urlize-assume-https\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Obsolète depuis la version 6.0.</span></p>\n</aside>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Set this transitional setting to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> to opt into using HTTPS as the\ndefault protocol when none is provided in URLs processed by the\n<a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-urlize\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">urlize</span></code></a> and <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-urlizetrunc\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">urlizetrunc</span></code></a> template filters during the Django\n6.x release cycle.</p>\n</section>\n<section id=\"wsgi-application\">\n<span id=\"std-setting-WSGI_APPLICATION\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">WSGI_APPLICATION</span></code><a class=\"heading-anchor\" href=\"#wsgi-application\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le chemin Python complet de l’objet application WSGI que les serveurs intégrés dans Django vont utiliser (par ex. <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a>). La commande de gestion <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span></code></a> crée un fichier <code class=\"docutils literal notranslate\"><span class=\"pre\">wsgi.py</span></code> standard contenant un exécutable <code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code> et fait pointer ce réglage vers cet objet <code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code>.</p>\n<p>Si indéfini, c’est la valeur renvoyée par <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.wsgi.get_wsgi_application()</span></code> qui sera utilisée. Dans ce cas, le comportement de <a class=\"reference internal\" href=\"/fr/6.1/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> sera le même que lors des versions précédentes de Django.</p>\n</section>\n<section id=\"year-month-format\">\n<span id=\"std-setting-YEAR_MONTH_FORMAT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">YEAR_MONTH_FORMAT</span></code><a class=\"heading-anchor\" href=\"#year-month-format\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'F</span> <span class=\"pre\">Y'</span></code></p>\n<p>Le format par défaut à utiliser pour les champs date dans les listes pour modifications des pages de l’administration de Django, et potentiellement dans d’autres parties du système, dans les cas où seuls l’année et le mois sont affichés.</p>\n<p>Par exemple, lorsqu’une page de liste pour modification de l’administration de Django est filtrée par un choix de date, l’en-tête d’un mois donné affiche le mois et l’année. Différentes locales présentent différents formats. Par exemple, l’anglais américain affichera « January 2006, » alors qu’une autre locale affichera peut-être « 2006/January. ».</p>\n<p>Notez que le format induit par la locale a une priorité plus élevée et remplace ce séparateur.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">chaînes</span> <span class=\"pre\">de</span> <span class=\"pre\">format</span> <span class=\"pre\">de</span> <span class=\"pre\">date</span> <span class=\"pre\">autorisées</span></code></a>. Voir aussi <a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-MONTH_DAY_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MONTH_DAY_FORMAT</span></code></a>.</p>\n</section>\n<section id=\"x-frame-options\">\n<span id=\"std-setting-X_FRAME_OPTIONS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">X_FRAME_OPTIONS</span></code><a class=\"heading-anchor\" href=\"#x-frame-options\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'DENY'</span></code></p>\n<p>La valeur par défaut de l’en-tête X-Frame-Options utilisé par <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.middleware.clickjacking.XFrameOptionsMiddleware\" title=\"django.middleware.clickjacking.XFrameOptionsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">XFrameOptionsMiddleware</span></code></a>. Voir la documentation sur la <a class=\"reference internal\" href=\"/fr/6.1/ref/clickjacking/\"><span class=\"doc\">protection contre le détournement de clic</span></a>.</p>\n</section>\n</section>\n<section id=\"auth\">\n<h2><a class=\"toc-backref\" href=\"#id17\" role=\"doc-backlink\">Auth</a><a class=\"headerlink\" href=\"#auth\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<p>Réglages pour <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code></a>.</p>\n<section id=\"authentication-backends\">\n<span id=\"std-setting-AUTHENTICATION_BACKENDS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AUTHENTICATION_BACKENDS</span></code><a class=\"heading-anchor\" href=\"#authentication-backends\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">['django.contrib.auth.backends.ModelBackend']</span></code></p>\n<p>Une liste de classes de moteurs d’authentification (sous forme de chaînes) à utiliser durant la tentative d’authentification d’un utilisateur. Consultez la <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/customizing/#authentication-backends\"><span class=\"std std-ref\">documentation sur les moteurs d’authentification</span></a> pour plus de détails.</p>\n</section>\n<section id=\"auth-user-model\">\n<span id=\"std-setting-AUTH_USER_MODEL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code><a class=\"heading-anchor\" href=\"#auth-user-model\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'auth.User'</span></code></p>\n<p>Le modèle à utiliser pour représenter un utilisateur. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/customizing/#auth-custom-user\"><span class=\"std std-ref\">Substitution par un modèle User personnalisé</span></a>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p>Il n’est pas possible de modifier le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code> au cours de la vie d’un projet (c’est-à-dire après avoir créé et migré des modèles qui en dépendent) sans effort conséquent. Il est prévu pour être défini au début d’un projet et le modèle qu’il désigne doit être disponible dans la première migration de l’application dans laquelle il se trouve. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/customizing/#auth-custom-user\"><span class=\"std std-ref\">Substitution par un modèle User personnalisé</span></a> pour plus de détails.</p>\n</aside>\n</section>\n<section id=\"login-redirect-url\">\n<span id=\"std-setting-LOGIN_REDIRECT_URL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LOGIN_REDIRECT_URL</span></code><a class=\"heading-anchor\" href=\"#login-redirect-url\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'/accounts/profile/'</span></code></p>\n<p>L’URL ou le <a class=\"reference internal\" href=\"/fr/6.1/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">motif d’URL nommé</span></a> vers lequel seront redirigées les requêtes après la connexion si la vue <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.views.LoginView\" title=\"django.contrib.auth.views.LoginView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LoginView</span></code></a> ne reçoit pas de paramètre GET <code class=\"docutils literal notranslate\"><span class=\"pre\">next</span></code>.</p>\n</section>\n<section id=\"login-url\">\n<span id=\"std-setting-LOGIN_URL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LOGIN_URL</span></code><a class=\"heading-anchor\" href=\"#login-url\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'/accounts/login/'</span></code></p>\n<p>L’URL ou le <a class=\"reference internal\" href=\"/fr/6.1/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">motif d’URL nommé</span></a> vers lequel seront redirigées les requêtes pour la connexion avec le décorateur <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.decorators.login_required\" title=\"django.contrib.auth.decorators.login_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_required()</span></code></a>, les classes <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.mixins.LoginRequiredMixin\" title=\"django.contrib.auth.mixins.LoginRequiredMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LoginRequiredMixin</span></code></a>, <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.mixins.AccessMixin\" title=\"django.contrib.auth.mixins.AccessMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AccessMixin</span></code></a> ou quand l’intergiciel <a class=\"reference internal\" href=\"/fr/6.1/ref/middleware/#django.contrib.auth.middleware.LoginRequiredMiddleware\" title=\"django.contrib.auth.middleware.LoginRequiredMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LoginRequiredMiddleware</span></code></a> est installé.</p>\n</section>\n<section id=\"logout-redirect-url\">\n<span id=\"std-setting-LOGOUT_REDIRECT_URL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LOGOUT_REDIRECT_URL</span></code><a class=\"heading-anchor\" href=\"#logout-redirect-url\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>L’URL ou le <a class=\"reference internal\" href=\"/fr/6.1/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">motif d’URL nommé</span></a> vers lequel seront redirigées les requêtes après la déconnexion si la vue <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.views.LogoutView\" title=\"django.contrib.auth.views.LogoutView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LogoutView</span></code></a> ne possède pas d’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">next_page</span></code>.</p>\n<p>Avec <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, aucune redirection n’est effectuée et la vue de déconnexion <code class=\"docutils literal notranslate\"><span class=\"pre\">logout</span></code> sera produite.</p>\n</section>\n<section id=\"password-reset-timeout\">\n<span id=\"std-setting-PASSWORD_RESET_TIMEOUT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD_RESET_TIMEOUT</span></code><a class=\"heading-anchor\" href=\"#password-reset-timeout\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">259200</span></code> (3 jours, en secondes)</p>\n<p>La durée de validité d’un lien de réinitialisation de mot de passe, en secondes.</p>\n<p>Utilisé par <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/default/#django.contrib.auth.views.PasswordResetConfirmView\" title=\"django.contrib.auth.views.PasswordResetConfirmView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PasswordResetConfirmView</span></code></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>La réduction de la valeur de ce délai ne fait aucune différence quant à la possibilité d’attaquer par force brute un jeton de réinitialisation de mot de passe. Les jetons sont conçus pour être protégés des attaques par force brute même sans expiration.</p>\n<p>Ce délai existe pour protéger contre certains scénarios d’attaque peu probables, comme l’accès non autorisé à des archives de messagerie pouvant contenir des anciens jetons de réinitialisation inutilisés.</p>\n</aside>\n</section>\n<section id=\"password-hashers\">\n<span id=\"std-setting-PASSWORD_HASHERS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD_HASHERS</span></code><a class=\"heading-anchor\" href=\"#password-hashers\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/passwords/#auth-password-storage\"><span class=\"std std-ref\">Stockage des mots de passe par Django</span></a>.</p>\n<p>Valeur par défaut :</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=\"p\">[</span>\n    <span class=\"s2\">&quot;django.contrib.auth.hashers.PBKDF2PasswordHasher&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.hashers.Argon2PasswordHasher&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.hashers.BCryptSHA256PasswordHasher&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.hashers.ScryptPasswordHasher&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"auth-password-validators\">\n<span id=\"std-setting-AUTH_PASSWORD_VALIDATORS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AUTH_PASSWORD_VALIDATORS</span></code><a class=\"heading-anchor\" href=\"#auth-password-validators\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>La liste des validateurs utilisés pour vérifier la solidité des mots de passe des utilisateurs. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/auth/passwords/#password-validation\"><span class=\"std std-ref\">Validation des mots de passe</span></a> pour plus de détails. Par défaut, aucune validation n’est effectuée et tous les mots de passe sont acceptés.</p>\n</section>\n</section>\n<section id=\"messages\">\n<span id=\"settings-messages\"></span><h2><a class=\"toc-backref\" href=\"#id18\" role=\"doc-backlink\">Messages</a><a class=\"headerlink\" href=\"#messages\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<p>Réglages pour <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a>.</p>\n<section id=\"message-level\">\n<span id=\"std-setting-MESSAGE_LEVEL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MESSAGE_LEVEL</span></code><a class=\"heading-anchor\" href=\"#message-level\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">messages.INFO</span></code></p>\n<p>Définit le niveau minimum des messages qui seront traités par le système des messages. Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#message-level\"><span class=\"std std-ref\">niveaux de message</span></a> pour plus de détails.</p>\n<aside class=\"admonition-avoiding-circular-imports admonition\">\n<p class=\"admonition-title\">Éviter les importations circulaires</p>\n<p>Si vous surchargez <code class=\"docutils literal notranslate\"><span class=\"pre\">MESSAGE_LEVEL</span></code> dans votre fichier de réglages et que vous comptez sur les constantes intégrées, vous devez importer directement le module des constantes pour éviter une éventuelle importation circulaire, par ex. :</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=\"w\"> </span><span class=\"nn\">django.contrib.messages</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">constants</span> <span class=\"k\">as</span> <span class=\"n\">message_constants</span>\n\n<span class=\"n\">MESSAGE_LEVEL</span> <span class=\"o\">=</span> <span class=\"n\">message_constants</span><span class=\"o\">.</span><span class=\"n\">DEBUG</span>\n</code></pre></div>\n<p>Si souhaité, vous pouvez indiquer directement les valeurs numériques des constantes en fonction des valeurs dans le <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#message-level-constants\"><span class=\"std std-ref\">tableau des constantes</span></a> ci-dessus.</p>\n</aside>\n</section>\n<section id=\"message-storage\">\n<span id=\"std-setting-MESSAGE_STORAGE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MESSAGE_STORAGE</span></code><a class=\"heading-anchor\" href=\"#message-storage\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.messages.storage.fallback.FallbackStorage'</span></code></p>\n<p>Contrôle l’emplacement de stockage des données de messages. Les valeurs possibles sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.messages.storage.fallback.FallbackStorage'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.messages.storage.session.SessionStorage'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.messages.storage.cookie.CookieStorage'</span></code></p></li>\n</ul>\n<p>Voir les <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#message-storage-backends\"><span class=\"std std-ref\">moteurs de stockage de messages</span></a> pour plus de détails.</p>\n<p>Les moteurs qui utilisent des cookies – <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#django.contrib.messages.storage.cookie.CookieStorage\" title=\"django.contrib.messages.storage.cookie.CookieStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CookieStorage</span></code></a> et <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#django.contrib.messages.storage.fallback.FallbackStorage\" title=\"django.contrib.messages.storage.fallback.FallbackStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FallbackStorage</span></code></a> – utilisent les valeurs de <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_DOMAIN\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_DOMAIN</span></code></a>, <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code></a> et <a class=\"reference internal\" href=\"#std-setting-SESSION_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code></a> lors de la définition de leurs cookies.</p>\n</section>\n<section id=\"message-tags\">\n<span id=\"std-setting-MESSAGE_TAGS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MESSAGE_TAGS</span></code><a class=\"heading-anchor\" href=\"#message-tags\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">{</span>\n    <span class=\"n\">messages</span><span class=\"o\">.</span><span class=\"n\">DEBUG</span><span class=\"p\">:</span> <span class=\"s2\">&quot;debug&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">messages</span><span class=\"o\">.</span><span class=\"n\">INFO</span><span class=\"p\">:</span> <span class=\"s2\">&quot;info&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">messages</span><span class=\"o\">.</span><span class=\"n\">SUCCESS</span><span class=\"p\">:</span> <span class=\"s2\">&quot;success&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">messages</span><span class=\"o\">.</span><span class=\"n\">WARNING</span><span class=\"p\">:</span> <span class=\"s2\">&quot;warning&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">messages</span><span class=\"o\">.</span><span class=\"n\">ERROR</span><span class=\"p\">:</span> <span class=\"s2\">&quot;error&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Ceci définit l’association du niveau de message à l’étiquette de message, qui est généralement rendue comme une classe CSS au format HTML. Si vous indiquez une valeur, elle étendra celle par défaut. Cela signifie que vous devez seulement définir les valeurs que vous souhaitez redéfinir. Voir <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#message-displaying\"><span class=\"std std-ref\">Affichage des messages</span></a> ci-dessus pour plus de détails.</p>\n<aside class=\"admonition-avoiding-circular-imports admonition\">\n<p class=\"admonition-title\">Éviter les importations circulaires</p>\n<p>Si vous surchargez <code class=\"docutils literal notranslate\"><span class=\"pre\">MESSAGE_TAGS</span></code> dans votre fichier de réglages et que vous comptez sur les constantes intégrées, vous devez importer directement le module des constantes pour éviter une éventuelle importation circulaire, par ex. :</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=\"w\"> </span><span class=\"nn\">django.contrib.messages</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">constants</span> <span class=\"k\">as</span> <span class=\"n\">message_constants</span>\n\n<span class=\"n\">MESSAGE_TAGS</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"n\">message_constants</span><span class=\"o\">.</span><span class=\"n\">INFO</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">}</span>\n</code></pre></div>\n<p>Si souhaité, vous pouvez indiquer directement les valeurs numériques des constantes en fonction des valeurs dans le <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#message-level-constants\"><span class=\"std std-ref\">tableau des constantes</span></a> ci-dessus.</p>\n</aside>\n</section>\n</section>\n<section id=\"sessions\">\n<span id=\"settings-sessions\"></span><h2><a class=\"toc-backref\" href=\"#id19\" role=\"doc-backlink\">Sessions</a><a class=\"headerlink\" href=\"#sessions\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<p>Réglages pour <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/#module-django.contrib.sessions\" title=\"django.contrib.sessions: Provides session management for Django projects.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions</span></code></a>.</p>\n<section id=\"session-cache-alias\">\n<span id=\"std-setting-SESSION_CACHE_ALIAS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_CACHE_ALIAS</span></code><a class=\"heading-anchor\" href=\"#session-cache-alias\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'default'</span></code></p>\n<p>Si vous utilisez le <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/#cached-sessions-backend\"><span class=\"std std-ref\">stockage des sessions basé en cache</span></a>, ce réglage choisit le cache à utiliser.</p>\n</section>\n<section id=\"session-cookie-age\">\n<span id=\"std-setting-SESSION_COOKIE_AGE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_AGE</span></code><a class=\"heading-anchor\" href=\"#session-cookie-age\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">1209600</span></code> (2 semaines, en secondes)</p>\n<p>L’âge des cookies de sessions, en secondes.</p>\n</section>\n<section id=\"session-cookie-domain\">\n<span id=\"std-setting-SESSION_COOKIE_DOMAIN\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_DOMAIN</span></code><a class=\"heading-anchor\" href=\"#session-cookie-domain\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le domaine à utiliser pour les cookies de session. Définissez ce réglage à une chaîne, comme <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;example.com&quot;</span></code> pour un cookie inter-domaine, ou utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> pour un cookie de domaine standard.</p>\n<p>Pour utiliser des cookies inter-sites avec <a class=\"reference internal\" href=\"#std-setting-CSRF_USE_SESSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code></a>, vous devez inclure un point initial (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;.example.com&quot;</span></code>) pour satisfaire le contrôle du référent par l’intergiciel CSRF.</p>\n<p>Soyez prudent lors de la mise à jour de ce réglage sur un site de production. Si vous mettez à jour ce paramètre pour activer les cookies inter-domaines sur un site qui utilisait précédemment les cookies de domaine standards, les cookies des utilisateurs existants seront définis sur l’ancien domaine. Il peut en résulter qu’ils seront incapables de s’identifier aussi longtemps que ces cookies persistent.</p>\n<p>Ce réglage affecte aussi les cookies définis par <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a>.</p>\n</section>\n<section id=\"session-cookie-httponly\">\n<span id=\"std-setting-SESSION_COOKIE_HTTPONLY\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_HTTPONLY</span></code><a class=\"heading-anchor\" href=\"#session-cookie-httponly\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p>\n<p>Indique si le drapeau <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpOnly</span></code> doit être utilisé sur le cookie de session. Si ce paramètre est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le code JavaScript côté client ne sera pas en mesure d’accéder au cookie de session.</p>\n<p><a class=\"reference external\" href=\"https://owasp.org/www-community/HttpOnly\">HttpOnly</a> est un drapeau inclus dans un en-tête de réponse HTTP Set-Cookie. Il fait partie du standard <span class=\"target\" id=\"index-5\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc6265.html#section-4.1.2.6\"><strong>RFC 6265 Section 4.1.2.6</strong></a> pour les cookies, et c’est un moyen utile de réduire le risque d’un script côté client accédant aux données d’un cookie protégé.</p>\n<p>Cela complique la tâche d’un attaquant qui voudrait exploiter une vulnérabilité de script inter-site pour accéder sans limite à une session d’utilisateur. Il n’y a pas beaucoup de bonnes raisons de ne pas activer ce réglage. Votre code ne devrait pas lire des cookies de session à partir de JavaScript.</p>\n</section>\n<section id=\"session-cookie-name\">\n<span id=\"std-setting-SESSION_COOKIE_NAME\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_NAME</span></code><a class=\"heading-anchor\" href=\"#session-cookie-name\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'sessionid'</span></code></p>\n<p>Le nom du cookie à utiliser pour les sessions. Vous pouvez mettre ce que vous voulez (pour autant que ce soit différent de ceux qui existent déjà dans votre application).</p>\n</section>\n<section id=\"session-cookie-path\">\n<span id=\"std-setting-SESSION_COOKIE_PATH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_PATH</span></code><a class=\"heading-anchor\" href=\"#session-cookie-path\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'/'</span></code></p>\n<p>Le chemin défini dans le cookie de session. Cela doit correspondre au chemin d’URL de votre installation de Django ou être un parent de ce chemin.</p>\n<p>Utile si vous avez plusieurs instances de Django fonctionnant sous le même nom d’hôte. Ils peuvent alors utiliser des chemins de cookies différents pour que chaque instance ne voit que son propre cookie de session.</p>\n</section>\n<section id=\"session-cookie-samesite\">\n<span id=\"std-setting-SESSION_COOKIE_SAMESITE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SAMESITE</span></code><a class=\"heading-anchor\" href=\"#session-cookie-samesite\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'Lax'</span></code></p>\n<p>La valeur de l’option <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value\">SameSite</a> du cookie de session. Cette option empêche le cookie d’être envoyé dans les requêtes inter-sites, ce qui prévient les attaques CSRF et rend impossible certaines méthodes de vol du cookie de session.</p>\n<p>Les valeurs possibles de ce réglage sont :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Strict'</span></code>: empêche le cookie d’être envoyé par le navigateur vers le site cible dans tous les contextes de navigation inter-sites, même en suivant un lien normal.</p>\n<p>Par exemple, pour un site Web de type GitHub, cela signifierait que si un utilisateur connecté suit un lien vers un projet GitHub privé posté sur un forum de discussion interne ou un courriel, GitHub ne reçoit pas le cookie de session et l’utilisateur ne sera pas autorisé à accéder au projet. Un site web bancaire, cependant, ne voudra probablement pas permettre à n’importe quelle page transactionnelle d’être mise en lien depuis des sites externes, l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">'Strict'</span></code> serait donc appropriée.</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Lax'</span></code> (valeur par défaut) : compromis entre sécurité et facilité d’usage pour les sites web qui souhaitent maintenir les sessions connectées des utilisateurs quand ceux-ci arrivent à partir d’un lien externe.</p>\n<p>Dans le scénario GitHub, le cookie de session serait autorisé dans le cas d’un lien normal depuis un site web externe, mais serait bloqué pour des méthodes de requête sujettes à CSRF (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code>).</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'None'</span></code> (chaîne) : le cookie de session sera envoyé avec toutes les requêtes du même site et inter-sites.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>: désactive l’option.</p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Les navigateurs modernes fournissent une politique par défaut plus sûre pour l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">SameSite</span></code> et se rabattent sur la valeur <code class=\"docutils literal notranslate\"><span class=\"pre\">Lax</span></code> pour les cookies sans valeur explicitement définie.</p>\n</aside>\n</section>\n<section id=\"session-cookie-secure\">\n<span id=\"std-setting-SESSION_COOKIE_SECURE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code><a class=\"heading-anchor\" href=\"#session-cookie-secure\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il est nécessaire d’utiliser un cookie sécurisé pour le cookie de session. Si défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, le cookie sera marqué comme « sécurisé », ce qui signifie que les navigateurs sont chargés de vérifier que le cookie n’est envoyé que pour des connexions HTTPS.</p>\n<p>Il n’est vraiment pas conseillé de laisser ce réglage désactivé, car un attaquant pourrait capturer un cookie de session non chiffré avec un renifleur de paquet puis utiliser ce cookie pour s’introduire dans la session de l’utilisateur.</p>\n</section>\n<section id=\"session-engine\">\n<span id=\"std-setting-SESSION_ENGINE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_ENGINE</span></code><a class=\"heading-anchor\" href=\"#session-engine\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.backends.db'</span></code></p>\n<p>Contrôle l’emplacement de stockage des données de sessions. Les moteurs inclus sont :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.backends.db'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.backends.file'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.backends.cache'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.backends.cached_db'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.backends.signed_cookies'</span></code></p></li>\n</ul>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/#configuring-sessions\"><span class=\"std std-ref\">Configuration du moteur de sessions</span></a> pour plus de détails.</p>\n</section>\n<section id=\"session-expire-at-browser-close\">\n<span id=\"std-setting-SESSION_EXPIRE_AT_BROWSER_CLOSE\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_EXPIRE_AT_BROWSER_CLOSE</span></code><a class=\"heading-anchor\" href=\"#session-expire-at-browser-close\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique s’il faut que la session expire lorsque l’utilisateur ferme son navigateur. Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/#browser-length-vs-persistent-sessions\"><span class=\"std std-ref\">Expiration ou persistance des sessions</span></a>.</p>\n</section>\n<section id=\"session-file-path\">\n<span id=\"std-setting-SESSION_FILE_PATH\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_FILE_PATH</span></code><a class=\"heading-anchor\" href=\"#session-file-path\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Si vous utilisez le stockage de sessions basé sur des fichiers, cela définit le répertoire dans lequel Django stocke les données de sessions. Avec la valeur par défaut (<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>), Django utilise le répertoire temporaire standard du système.</p>\n</section>\n<section id=\"session-save-every-request\">\n<span id=\"std-setting-SESSION_SAVE_EVERY_REQUEST\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_SAVE_EVERY_REQUEST</span></code><a class=\"heading-anchor\" href=\"#session-save-every-request\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p>\n<p>Indique si les données de sessions sont enregistrées lors de chaque requête. Avec la valeur <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (par défaut), Django n’enregistre la session dans la base de données qu’au moment où la session a été modifiée, c’est-à-dire qu’au moins une des valeurs de son dictionnaire a été définie ou supprimée. Les sessions vides ne seront pas créées, même si ce réglage est activé.</p>\n</section>\n<section id=\"session-serializer\">\n<span id=\"std-setting-SESSION_SERIALIZER\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SESSION_SERIALIZER</span></code><a class=\"heading-anchor\" href=\"#session-serializer\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.serializers.JSONSerializer'</span></code></p>\n<p>Chemin d’importation complet d’une classe de sérialisation à utiliser pour la sérialisation des données de session. Le sérialiseur inclus est :</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.sessions.serializers.JSONSerializer'</span></code></p></li>\n</ul>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.1/topics/http/sessions/#session-serialization\"><span class=\"std std-ref\">Sérialisation des sessions</span></a> pour plus de détails.</p>\n</section>\n</section>\n<section id=\"sites\">\n<h2><a class=\"toc-backref\" href=\"#id20\" role=\"doc-backlink\">Sites</a><a class=\"headerlink\" href=\"#sites\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<p>Réglages pour <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/sites/#module-django.contrib.sites\" title=\"django.contrib.sites: Lets you operate multiple websites from the same database and Django project\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sites</span></code></a>.</p>\n<section id=\"site-id\">\n<span id=\"std-setting-SITE_ID\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SITE_ID</span></code><a class=\"heading-anchor\" href=\"#site-id\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :  non définie</p>\n<p>L’identifiant (nombre entier) du site actuel dans la table de base de données <code class=\"docutils literal notranslate\"><span class=\"pre\">django_site</span></code>. Peut être utilisé par les applications pour lier leurs données à des sites spécifiques et ainsi gérer dans une même base de données du contenu pour plusieurs sites.</p>\n</section>\n</section>\n<section id=\"static-files\">\n<span id=\"settings-staticfiles\"></span><h2><a class=\"toc-backref\" href=\"#id21\" role=\"doc-backlink\">Fichiers statiques</a><a class=\"headerlink\" href=\"#static-files\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<p>Réglages pour <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#module-django.contrib.staticfiles\" title=\"django.contrib.staticfiles: An app for handling static files.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code></a>.</p>\n<section id=\"static-root\">\n<span id=\"std-setting-STATIC_ROOT\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code><a class=\"heading-anchor\" href=\"#static-root\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>Le chemin absolu vers le répertoire dans lequel <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> rassemble les fichiers statiques en vue du déploiement.</p>\n<p>Exemple : <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/var/www/example.com/static/&quot;</span></code></p>\n<p>Si l’application complémentaire <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles</span></a> est activée (c’est le cas dans le modèle de projet par défaut), la commande d’administration <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> rassemble les fichiers statiques dans ce répertoire. Consultez le guide pratique sur la <a class=\"reference internal\" href=\"/fr/6.1/howto/static-files/\"><span class=\"doc\">gestion des fichiers statiques</span></a> pour plus de détails sur son utilisation.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Avertissement</p>\n<p>This should be an initially empty destination directory for collecting\nyour static files from their permanent locations into one directory for\nease of deployment; it is <strong>not</strong> a place to store your static files\npermanently. You should do that in directories that will be found by\n<a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles</span></a>’s\n<a class=\"reference internal\" href=\"#std-setting-STATICFILES_FINDERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">finders</span></code></a>, which by default, are\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'static/'</span></code> app sub-directories and any directories you include in\n<a class=\"reference internal\" href=\"#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a>.</p>\n</aside>\n</section>\n<section id=\"static-url\">\n<span id=\"std-setting-STATIC_URL\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code><a class=\"heading-anchor\" href=\"#static-url\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p>\n<p>URL utilisée pour se référer aux fichiers statiques se trouvant dans <a class=\"reference internal\" href=\"#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>.</p>\n<p>Exemple : <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;static/&quot;</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://static.example.com/&quot;</span></code></p>\n<p>Si ce réglage ne vaut pas <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, il est utilisé comme chemin de base pour les <a class=\"reference internal\" href=\"/fr/6.1/topics/forms/media/#form-asset-paths\"><span class=\"std std-ref\">définitions de fichiers annexes</span></a> (la classe <code class=\"docutils literal notranslate\"><span class=\"pre\">Media</span></code>) et l’<a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/\"><span class=\"doc\">application staticfiles</span></a>.</p>\n<p>Cette valeur doit se terminer par une barre oblique quand elle est définie.</p>\n<p>Vous devrez peut-être <a class=\"reference internal\" href=\"/fr/6.1/howto/static-files/#serving-static-files-in-development\"><span class=\"std std-ref\">configurer ces fichiers pour être servis en développement</span></a> et aurez sans aucun doute besoin de le faire <a class=\"reference internal\" href=\"/fr/6.1/howto/static-files/deployment/\"><span class=\"doc\">en production</span></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Si <a class=\"reference internal\" href=\"#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> est un chemin relatif, il sera préfixé par la valeur de <code class=\"docutils literal notranslate\"><span class=\"pre\">SCRIPT_NAME</span></code> fournie par le serveur (ou <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code> si non défini). Cela rend plus simple la configuration d’une application Django dans un sous-chemin sans devoir ajouter une configuration supplémentaire aux réglages.</p>\n</aside>\n</section>\n<section id=\"staticfiles-dirs\">\n<span id=\"std-setting-STATICFILES_DIRS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code><a class=\"heading-anchor\" href=\"#staticfiles-dirs\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (liste vide)</p>\n<p>Ce réglage définit les emplacements supplémentaires que l’application <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> parcourt si la recherche par <code class=\"docutils literal notranslate\"><span class=\"pre\">FileSystemFinder</span></code> est activée, par exemple quand vous utilisez la commande de gestion <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> ou <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-findstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">findstatic</span></code></a>, ou quand vous utilisez la vue de service de fichiers statiques.</p>\n<p>Il devrait contenir une liste de chaînes contenant les chemins complets vers les répertoires de fichiers supplémentaires ; 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=\"n\">STATICFILES_DIRS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;/home/special.polls.com/polls/static&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;/home/polls.com/polls/static&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;/opt/webfiles/common&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Notez que ces chemins doivent utiliser des barres obliques de type Unix, même sur Windows (par ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;C:/Users/user/mon_site/contenu_statique_suppl&quot;</span></code>).</p>\n<section id=\"prefixes-optional\">\n<span id=\"staticfiles-dirs-prefixes\"></span><h4>Préfixes (facultatifs)<a class=\"heading-anchor\" href=\"#prefixes-optional\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Dans le cas où vous souhaiteriez vous référer aux fichiers d’un des emplacements avec un espace de noms supplémentaire, il est <strong>possible</strong> d’indiquer un préfixe sous la forme de tuples <code class=\"docutils literal notranslate\"><span class=\"pre\">(préfixe,</span> <span class=\"pre\">chemin)</span></code>, comme 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=\"n\">STATICFILES_DIRS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;downloads&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;/opt/webfiles/stats&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Par exemple, en supposant que <a class=\"reference internal\" href=\"#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> soit défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">static/</span></code>, la commande de gestion <a class=\"reference internal\" href=\"/fr/6.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> recueillera les fichiers « stats » dans un sous-répertoire <code class=\"docutils literal notranslate\"><span class=\"pre\">'downloads'</span></code> de <a class=\"reference internal\" href=\"#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>.</p>\n<p>Cela permettrait de se référer au fichier local <code class=\"docutils literal notranslate\"><span class=\"pre\">'/opt/webfiles/stats/polls_20101022.tar.gz'</span></code> par <code class=\"docutils literal notranslate\"><span class=\"pre\">'/static/downloads/polls_20101022.tar.gz'</span></code> dans les gabarits ; par exemple :</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">static</span> <span class=\"s1\">&#39;downloads/polls_20101022.tar.gz&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"staticfiles-finders\">\n<span id=\"std-setting-STATICFILES_FINDERS\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">STATICFILES_FINDERS</span></code><a class=\"heading-anchor\" href=\"#staticfiles-finders\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Valeur par défaut :</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=\"p\">[</span>\n    <span class=\"s2\">&quot;django.contrib.staticfiles.finders.FileSystemFinder&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.staticfiles.finders.AppDirectoriesFinder&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>La liste des moteurs de découverte sachant retrouver les fichiers statiques en divers endroits.</p>\n<p>Le comportement par défaut recherche les fichiers stockés aux emplacements du réglage <a class=\"reference internal\" href=\"#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> (en utilisant <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.finders.FileSystemFinder</span></code>) et dans un sous-répertoire <code class=\"docutils literal notranslate\"><span class=\"pre\">static</span></code> de chaque application (en utilisant <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.finders.AppDirectoriesFinder</span></code>). Si plusieurs fichiers de même nom sont présents, le premier fichier trouvé est utilisé.</p>\n<p>Un moteur de découverte est désactivé par défaut : <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.finders.DefaultStorageFinder</span></code>. S’il est ajouté au réglage <a class=\"reference internal\" href=\"#std-setting-STATICFILES_FINDERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_FINDERS</span></code></a>, il recherche les fichiers statiques dans l’emplacement de stockage des fichiers par défaut tel que défini par la clé <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> du réglage <a class=\"reference internal\" href=\"#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Lorsqu’on utilise le moteur <code class=\"docutils literal notranslate\"><span class=\"pre\">AppDirectoriesFinder</span></code>, il faut s’assurer que les applications peuvent être trouvées par <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> en ajoutant l’application au réglage <a class=\"reference internal\" href=\"#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> du site.</p>\n</aside>\n<p>Les moteurs de découverte de fichiers statiques sont actuellement considérés comme une interface privée, ce qui explique que cette interface n’est pas documentée.</p>\n</section>\n</section>\n<section id=\"core-settings-topical-index\">\n<h2><a class=\"toc-backref\" href=\"#id22\" role=\"doc-backlink\">Index thématique des réglages de base</a><a class=\"headerlink\" href=\"#core-settings-topical-index\" title=\"Lien vers cette rubrique\">¶</a></h2>\n<section id=\"cache\">\n<h3>Cache<a class=\"heading-anchor\" href=\"#cache\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CACHE_MIDDLEWARE_ALIAS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_ALIAS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CACHE_MIDDLEWARE_KEY_PREFIX\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_KEY_PREFIX</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CACHE_MIDDLEWARE_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_SECONDS</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"database\">\n<h3>Base de données<a class=\"heading-anchor\" href=\"#database\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATABASES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATABASE_ROUTERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASE_ROUTERS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_INDEX_TABLESPACE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_INDEX_TABLESPACE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_TABLESPACE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_TABLESPACE</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"debugging\">\n<h3>Débogage<a class=\"heading-anchor\" href=\"#debugging\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEBUG_PROPAGATE_EXCEPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG_PROPAGATE_EXCEPTIONS</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"email\">\n<h3>Messagerie<a class=\"heading-anchor\" href=\"#email\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_FILE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_FILE_PATH</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST_PASSWORD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_PASSWORD</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_HOST_USER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_HOST_USER</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_PORT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_SSL_CERTFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_CERTFILE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_SSL_KEYFILE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SSL_KEYFILE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_SUBJECT_PREFIX\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_SUBJECT_PREFIX</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_TIMEOUT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_TIMEOUT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_LOCALTIME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_LOCALTIME</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_SSL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_SSL</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-EMAIL_USE_TLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_USE_TLS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MAILERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MAILERS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"error-reporting\">\n<h3>Signalement d’erreurs<a class=\"heading-anchor\" href=\"#error-reporting\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_EXCEPTION_REPORTER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_EXCEPTION_REPORTER</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_EXCEPTION_REPORTER_FILTER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_EXCEPTION_REPORTER_FILTER</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-IGNORABLE_404_URLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_URLS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SILENCED_SYSTEM_CHECKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SILENCED_SYSTEM_CHECKS</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"file-uploads\">\n<span id=\"file-upload-settings\"></span><h3>Téléversement de fichiers<a class=\"heading-anchor\" href=\"#file-uploads\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_HANDLERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_HANDLERS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_MAX_MEMORY_SIZE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_DIRECTORY_PERMISSIONS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FILE_UPLOAD_TEMP_DIR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_TEMP_DIR</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"forms\">\n<h3>Formulaires<a class=\"heading-anchor\" href=\"#forms\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-USE_BLANK_CHOICE_DASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_BLANK_CHOICE_DASH</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"globalization-i18n-l10n\">\n<h3>Traduction et régionalisation (<code class=\"docutils literal notranslate\"><span class=\"pre\">i18n</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">l10n</span></code>)<a class=\"heading-anchor\" href=\"#globalization-i18n-l10n\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"internationalization-i18n\">\n<span id=\"settings-i18n\"></span><h4>Internationalisation (<code class=\"docutils literal notranslate\"><span class=\"pre\">i18n</span></code>)<a class=\"heading-anchor\" href=\"#internationalization-i18n\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-FIRST_DAY_OF_WEEK\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FIRST_DAY_OF_WEEK</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FORMAT_MODULE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORMAT_MODULE_PATH</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_AGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_AGE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_DOMAIN\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_DOMAIN</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_HTTPONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_HTTPONLY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_NAME</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_PATH</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_SAMESITE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_SAMESITE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_SECURE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGES_BIDI\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES_BIDI</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LOCALE_PATHS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOCALE_PATHS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-USE_I18N\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_I18N</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"localization-l10n\">\n<span id=\"settings-l10n\"></span><h4>Régionalisation (<code class=\"docutils literal notranslate\"><span class=\"pre\">l10n</span></code>)<a class=\"heading-anchor\" href=\"#localization-l10n\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DECIMAL_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DECIMAL_SEPARATOR</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MONTH_DAY_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MONTH_DAY_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-NUMBER_GROUPING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NUMBER_GROUPING</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SHORT_DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SHORT_DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-USE_THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_THOUSAND_SEPARATOR</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-YEAR_MONTH_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">YEAR_MONTH_FORMAT</span></code></a></p></li>\n</ul>\n</section>\n</section>\n<section id=\"http\">\n<h3>HTTP<a class=\"heading-anchor\" href=\"#http\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATA_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_MEMORY_SIZE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATA_UPLOAD_MAX_NUMBER_FIELDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_NUMBER_FIELDS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DATA_UPLOAD_MAX_NUMBER_FILES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATA_UPLOAD_MAX_NUMBER_FILES</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-DISALLOWED_USER_AGENTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DISALLOWED_USER_AGENTS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FORCE_SCRIPT_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORCE_SCRIPT_NAME</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-INTERNAL_IPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INTERNAL_IPS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a></p></li>\n<li><p>Sécurité</p>\n<ul>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CONTENT_TYPE_NOSNIFF</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_CROSS_ORIGIN_OPENER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CROSS_ORIGIN_OPENER_POLICY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_CSP\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CSP</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_CSP_REPORT_ONLY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CSP_REPORT_ONLY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_HSTS_INCLUDE_SUBDOMAINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_INCLUDE_SUBDOMAINS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_HSTS_PRELOAD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_PRELOAD</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_PROXY_SSL_HEADER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_PROXY_SSL_HEADER</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_REDIRECT_EXEMPT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REDIRECT_EXEMPT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_SSL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_HOST</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a></p></li>\n</ul>\n</li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SIGNED_COOKIE_LEGACY_SALT_FALLBACK\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SIGNED_COOKIE_LEGACY_SALT_FALLBACK</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SIGNING_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SIGNING_BACKEND</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-USE_X_FORWARDED_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_HOST</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-USE_X_FORWARDED_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_PORT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-WSGI_APPLICATION\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">WSGI_APPLICATION</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"id14\">\n<h3>Journalisation<a class=\"heading-anchor\" href=\"#id14\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-LOGGING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-LOGGING_CONFIG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING_CONFIG</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"models\">\n<h3>Modèles<a class=\"heading-anchor\" href=\"#models\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-ABSOLUTE_URL_OVERRIDES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ABSOLUTE_URL_OVERRIDES</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-FIXTURE_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FIXTURE_DIRS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"security\">\n<h3>Sécurité<a class=\"heading-anchor\" href=\"#security\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p>Protection contre le « Cross site request forgery » (CSRF)</p>\n<ul>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_COOKIE_DOMAIN\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_DOMAIN</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_COOKIE_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_NAME</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_COOKIE_PATH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_PATH</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_COOKIE_SAMESITE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SAMESITE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SECURE</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_FAILURE_VIEW\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_FAILURE_VIEW</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_HEADER_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_HEADER_NAME</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_TRUSTED_ORIGINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_TRUSTED_ORIGINS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-CSRF_USE_SESSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code></a></p></li>\n</ul>\n</li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-URLIZE_ASSUME_HTTPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">URLIZE_ASSUME_HTTPS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-X_FRAME_OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">X_FRAME_OPTIONS</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"serialization\">\n<h3>Sérialisation<a class=\"heading-anchor\" href=\"#serialization\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-SERIALIZATION_MODULES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERIALIZATION_MODULES</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"id15\">\n<h3>Gabarits<a class=\"heading-anchor\" href=\"#id15\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"testing\">\n<h3>Tests<a class=\"heading-anchor\" href=\"#testing\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p>Base de données : <a class=\"reference internal\" href=\"#std-setting-DATABASE-TEST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEST</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TEST_NON_SERIALIZED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEST_NON_SERIALIZED_APPS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-TEST_RUNNER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEST_RUNNER</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"urls\">\n<h3>URL<a class=\"heading-anchor\" href=\"#urls\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-PREPEND_WWW\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">PREPEND_WWW</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ROOT_URLCONF</span></code></a></p></li>\n</ul>\n</section>\n</section>","rootId":"settings","toc":[{"title":"Réglages de base","anchor":"core-settings","children":[{"title":"ABSOLUTE_URL_OVERRIDES","anchor":"absolute-url-overrides","children":[]},{"title":"ADMINS","anchor":"admins","children":[]},{"title":"ALLOWED_HOSTS","anchor":"allowed-hosts","children":[]},{"title":"APPEND_SLASH","anchor":"append-slash","children":[]},{"title":"CACHES","anchor":"caches","children":[{"title":"BACKEND","anchor":"backend","children":[]},{"title":"KEY_FUNCTION","anchor":"key-function","children":[]},{"title":"KEY_PREFIX","anchor":"key-prefix","children":[]},{"title":"LOCATION","anchor":"location","children":[]},{"title":"OPTIONS","anchor":"options","children":[]},{"title":"TIMEOUT","anchor":"timeout","children":[]},{"title":"VERSION","anchor":"version","children":[]}]},{"title":"CACHE_MIDDLEWARE_ALIAS","anchor":"cache-middleware-alias","children":[]},{"title":"CACHE_MIDDLEWARE_KEY_PREFIX","anchor":"cache-middleware-key-prefix","children":[]},{"title":"CACHE_MIDDLEWARE_SECONDS","anchor":"cache-middleware-seconds","children":[]},{"title":"CSRF_COOKIE_AGE","anchor":"csrf-cookie-age","children":[]},{"title":"CSRF_COOKIE_DOMAIN","anchor":"csrf-cookie-domain","children":[]},{"title":"CSRF_COOKIE_HTTPONLY","anchor":"csrf-cookie-httponly","children":[]},{"title":"CSRF_COOKIE_NAME","anchor":"csrf-cookie-name","children":[]},{"title":"CSRF_COOKIE_PATH","anchor":"csrf-cookie-path","children":[]},{"title":"CSRF_COOKIE_SAMESITE","anchor":"csrf-cookie-samesite","children":[]},{"title":"CSRF_COOKIE_SECURE","anchor":"csrf-cookie-secure","children":[]},{"title":"CSRF_USE_SESSIONS","anchor":"csrf-use-sessions","children":[]},{"title":"CSRF_FAILURE_VIEW","anchor":"csrf-failure-view","children":[]},{"title":"CSRF_HEADER_NAME","anchor":"csrf-header-name","children":[]},{"title":"CSRF_TRUSTED_ORIGINS","anchor":"csrf-trusted-origins","children":[]},{"title":"DATABASES","anchor":"databases","children":[{"title":"ATOMIC_REQUESTS","anchor":"atomic-requests","children":[]},{"title":"AUTOCOMMIT","anchor":"autocommit","children":[]},{"title":"ENGINE","anchor":"engine","children":[]},{"title":"HOST","anchor":"host","children":[]},{"title":"NAME","anchor":"name","children":[]},{"title":"CONN_MAX_AGE","anchor":"conn-max-age","children":[]},{"title":"CONN_HEALTH_CHECKS","anchor":"conn-health-checks","children":[]},{"title":"OPTIONS","anchor":"std-setting-OPTIONS","children":[]},{"title":"PASSWORD","anchor":"password","children":[]},{"title":"PORT","anchor":"port","children":[]},{"title":"TIME_ZONE","anchor":"time-zone","children":[]},{"title":"DISABLE_SERVER_SIDE_CURSORS","anchor":"disable-server-side-cursors","children":[]},{"title":"USER","anchor":"user","children":[]},{"title":"TEST","anchor":"test","children":[{"title":"CHARSET","anchor":"charset","children":[]},{"title":"COLLATION","anchor":"collation","children":[]},{"title":"DEPENDENCIES","anchor":"dependencies","children":[]},{"title":"MIGRATE","anchor":"migrate","children":[]},{"title":"MIRROR","anchor":"mirror","children":[]},{"title":"NAME","anchor":"std-setting-TEST_NAME","children":[]},{"title":"TEMPLATE","anchor":"template","children":[]},{"title":"CREATE_DB","anchor":"create-db","children":[]},{"title":"CREATE_USER","anchor":"create-user","children":[]},{"title":"USER","anchor":"std-setting-TEST_USER","children":[]},{"title":"PASSWORD","anchor":"std-setting-TEST_PASSWD","children":[]},{"title":"ORACLE_MANAGED_FILES","anchor":"oracle-managed-files","children":[]},{"title":"TBLSPACE","anchor":"tblspace","children":[]},{"title":"TBLSPACE_TMP","anchor":"tblspace-tmp","children":[]},{"title":"DATAFILE","anchor":"datafile","children":[]},{"title":"DATAFILE_TMP","anchor":"datafile-tmp","children":[]},{"title":"DATAFILE_MAXSIZE","anchor":"datafile-maxsize","children":[]},{"title":"DATAFILE_TMP_MAXSIZE","anchor":"datafile-tmp-maxsize","children":[]},{"title":"DATAFILE_SIZE","anchor":"datafile-size","children":[]},{"title":"DATAFILE_TMP_SIZE","anchor":"datafile-tmp-size","children":[]},{"title":"DATAFILE_EXTSIZE","anchor":"datafile-extsize","children":[]},{"title":"DATAFILE_TMP_EXTSIZE","anchor":"datafile-tmp-extsize","children":[]}]}]},{"title":"DATA_UPLOAD_MAX_MEMORY_SIZE","anchor":"data-upload-max-memory-size","children":[]},{"title":"DATA_UPLOAD_MAX_NUMBER_FIELDS","anchor":"data-upload-max-number-fields","children":[]},{"title":"DATA_UPLOAD_MAX_NUMBER_FILES","anchor":"data-upload-max-number-files","children":[]},{"title":"DATABASE_ROUTERS","anchor":"database-routers","children":[]},{"title":"DATE_FORMAT","anchor":"date-format","children":[]},{"title":"DATE_INPUT_FORMATS","anchor":"date-input-formats","children":[]},{"title":"DATETIME_FORMAT","anchor":"datetime-format","children":[]},{"title":"DATETIME_INPUT_FORMATS","anchor":"datetime-input-formats","children":[]},{"title":"DEBUG","anchor":"debug","children":[]},{"title":"DEBUG_PROPAGATE_EXCEPTIONS","anchor":"debug-propagate-exceptions","children":[]},{"title":"DECIMAL_SEPARATOR","anchor":"decimal-separator","children":[]},{"title":"DEFAULT_AUTO_FIELD","anchor":"default-auto-field","children":[]},{"title":"DEFAULT_CHARSET","anchor":"default-charset","children":[]},{"title":"DEFAULT_EXCEPTION_REPORTER","anchor":"default-exception-reporter","children":[]},{"title":"DEFAULT_EXCEPTION_REPORTER_FILTER","anchor":"default-exception-reporter-filter","children":[]},{"title":"DEFAULT_FROM_EMAIL","anchor":"default-from-email","children":[]},{"title":"DEFAULT_INDEX_TABLESPACE","anchor":"default-index-tablespace","children":[]},{"title":"DEFAULT_TABLESPACE","anchor":"default-tablespace","children":[]},{"title":"DISALLOWED_USER_AGENTS","anchor":"disallowed-user-agents","children":[]},{"title":"EMAIL_BACKEND","anchor":"email-backend","children":[]},{"title":"EMAIL_FILE_PATH","anchor":"email-file-path","children":[]},{"title":"EMAIL_HOST","anchor":"email-host","children":[]},{"title":"EMAIL_HOST_PASSWORD","anchor":"email-host-password","children":[]},{"title":"EMAIL_HOST_USER","anchor":"email-host-user","children":[]},{"title":"EMAIL_PORT","anchor":"email-port","children":[]},{"title":"EMAIL_SUBJECT_PREFIX","anchor":"email-subject-prefix","children":[]},{"title":"EMAIL_USE_LOCALTIME","anchor":"email-use-localtime","children":[]},{"title":"EMAIL_USE_TLS","anchor":"email-use-tls","children":[]},{"title":"EMAIL_USE_SSL","anchor":"email-use-ssl","children":[]},{"title":"EMAIL_SSL_CERTFILE","anchor":"email-ssl-certfile","children":[]},{"title":"EMAIL_SSL_KEYFILE","anchor":"email-ssl-keyfile","children":[]},{"title":"EMAIL_TIMEOUT","anchor":"email-timeout","children":[]},{"title":"FILE_UPLOAD_HANDLERS","anchor":"file-upload-handlers","children":[]},{"title":"FILE_UPLOAD_MAX_MEMORY_SIZE","anchor":"file-upload-max-memory-size","children":[]},{"title":"FILE_UPLOAD_DIRECTORY_PERMISSIONS","anchor":"file-upload-directory-permissions","children":[]},{"title":"FILE_UPLOAD_PERMISSIONS","anchor":"file-upload-permissions","children":[]},{"title":"FILE_UPLOAD_TEMP_DIR","anchor":"file-upload-temp-dir","children":[]},{"title":"FIRST_DAY_OF_WEEK","anchor":"first-day-of-week","children":[]},{"title":"FIXTURE_DIRS","anchor":"fixture-dirs","children":[]},{"title":"FORCE_SCRIPT_NAME","anchor":"force-script-name","children":[]},{"title":"FORM_RENDERER","anchor":"form-renderer","children":[]},{"title":"FORMAT_MODULE_PATH","anchor":"format-module-path","children":[]},{"title":"IGNORABLE_404_URLS","anchor":"ignorable-404-urls","children":[]},{"title":"INSTALLED_APPS","anchor":"installed-apps","children":[]},{"title":"INTERNAL_IPS","anchor":"internal-ips","children":[]},{"title":"LANGUAGE_CODE","anchor":"language-code","children":[]},{"title":"LANGUAGE_COOKIE_AGE","anchor":"language-cookie-age","children":[]},{"title":"LANGUAGE_COOKIE_DOMAIN","anchor":"language-cookie-domain","children":[]},{"title":"LANGUAGE_COOKIE_HTTPONLY","anchor":"language-cookie-httponly","children":[]},{"title":"LANGUAGE_COOKIE_NAME","anchor":"language-cookie-name","children":[]},{"title":"LANGUAGE_COOKIE_PATH","anchor":"language-cookie-path","children":[]},{"title":"LANGUAGE_COOKIE_SAMESITE","anchor":"language-cookie-samesite","children":[]},{"title":"LANGUAGE_COOKIE_SECURE","anchor":"language-cookie-secure","children":[]},{"title":"LANGUAGES","anchor":"languages","children":[]},{"title":"LANGUAGES_BIDI","anchor":"languages-bidi","children":[]},{"title":"LOCALE_PATHS","anchor":"locale-paths","children":[]},{"title":"LOGGING","anchor":"logging","children":[]},{"title":"LOGGING_CONFIG","anchor":"logging-config","children":[]},{"title":"MAILERS","anchor":"mailers","children":[{"title":"BACKEND","anchor":"std-setting-MAILERS-BACKEND","children":[]},{"title":"OPTIONS","anchor":"std-setting-MAILERS-OPTIONS","children":[]}]},{"title":"MANAGERS","anchor":"managers","children":[]},{"title":"MEDIA_ROOT","anchor":"media-root","children":[]},{"title":"MEDIA_URL","anchor":"media-url","children":[]},{"title":"MIDDLEWARE","anchor":"middleware","children":[]},{"title":"MIGRATION_MODULES","anchor":"migration-modules","children":[]},{"title":"MONTH_DAY_FORMAT","anchor":"month-day-format","children":[]},{"title":"NUMBER_GROUPING","anchor":"number-grouping","children":[]},{"title":"PREPEND_WWW","anchor":"prepend-www","children":[]},{"title":"ROOT_URLCONF","anchor":"root-urlconf","children":[]},{"title":"SECRET_KEY","anchor":"secret-key","children":[]},{"title":"SECRET_KEY_FALLBACKS","anchor":"secret-key-fallbacks","children":[]},{"title":"SECURE_CONTENT_TYPE_NOSNIFF","anchor":"secure-content-type-nosniff","children":[]},{"title":"SECURE_CROSS_ORIGIN_OPENER_POLICY","anchor":"secure-cross-origin-opener-policy","children":[]},{"title":"SECURE_CSP","anchor":"secure-csp","children":[]},{"title":"SECURE_CSP_REPORT_ONLY","anchor":"secure-csp-report-only","children":[]},{"title":"SECURE_HSTS_INCLUDE_SUBDOMAINS","anchor":"secure-hsts-include-subdomains","children":[]},{"title":"SECURE_HSTS_PRELOAD","anchor":"secure-hsts-preload","children":[]},{"title":"SECURE_HSTS_SECONDS","anchor":"secure-hsts-seconds","children":[]},{"title":"SECURE_PROXY_SSL_HEADER","anchor":"secure-proxy-ssl-header","children":[]},{"title":"SECURE_REDIRECT_EXEMPT","anchor":"secure-redirect-exempt","children":[]},{"title":"SECURE_REFERRER_POLICY","anchor":"secure-referrer-policy","children":[]},{"title":"SECURE_SSL_HOST","anchor":"secure-ssl-host","children":[]},{"title":"SECURE_SSL_REDIRECT","anchor":"secure-ssl-redirect","children":[]},{"title":"SERIALIZATION_MODULES","anchor":"serialization-modules","children":[]},{"title":"SERVER_EMAIL","anchor":"server-email","children":[]},{"title":"SHORT_DATE_FORMAT","anchor":"short-date-format","children":[]},{"title":"SHORT_DATETIME_FORMAT","anchor":"short-datetime-format","children":[]},{"title":"SIGNED_COOKIE_LEGACY_SALT_FALLBACK","anchor":"signed-cookie-legacy-salt-fallback","children":[]},{"title":"SIGNING_BACKEND","anchor":"signing-backend","children":[]},{"title":"SILENCED_SYSTEM_CHECKS","anchor":"silenced-system-checks","children":[]},{"title":"STORAGES","anchor":"storages","children":[]},{"title":"TASKS","anchor":"tasks","children":[{"title":"BACKEND","anchor":"std-setting-TASKS-BACKEND","children":[]},{"title":"QUEUES","anchor":"queues","children":[]},{"title":"OPTIONS","anchor":"std-setting-TASKS-OPTIONS","children":[]}]},{"title":"TEMPLATES","anchor":"templates","children":[{"title":"BACKEND","anchor":"std-setting-TEMPLATES-BACKEND","children":[]},{"title":"NAME","anchor":"std-setting-TEMPLATES-NAME","children":[]},{"title":"DIRS","anchor":"dirs","children":[]},{"title":"APP_DIRS","anchor":"app-dirs","children":[]},{"title":"OPTIONS","anchor":"std-setting-TEMPLATES-OPTIONS","children":[]}]},{"title":"TEST_RUNNER","anchor":"test-runner","children":[]},{"title":"TEST_NON_SERIALIZED_APPS","anchor":"test-non-serialized-apps","children":[]},{"title":"THOUSAND_SEPARATOR","anchor":"thousand-separator","children":[]},{"title":"TIME_FORMAT","anchor":"time-format","children":[]},{"title":"TIME_INPUT_FORMATS","anchor":"time-input-formats","children":[]},{"title":"TIME_ZONE","anchor":"std-setting-TIME_ZONE","children":[]},{"title":"USE_BLANK_CHOICE_DASH","anchor":"use-blank-choice-dash","children":[]},{"title":"USE_I18N","anchor":"use-i18n","children":[]},{"title":"USE_THOUSAND_SEPARATOR","anchor":"use-thousand-separator","children":[]},{"title":"USE_TZ","anchor":"use-tz","children":[]},{"title":"USE_X_FORWARDED_HOST","anchor":"use-x-forwarded-host","children":[]},{"title":"USE_X_FORWARDED_PORT","anchor":"use-x-forwarded-port","children":[]},{"title":"URLIZE_ASSUME_HTTPS","anchor":"urlize-assume-https","children":[]},{"title":"WSGI_APPLICATION","anchor":"wsgi-application","children":[]},{"title":"YEAR_MONTH_FORMAT","anchor":"year-month-format","children":[]},{"title":"X_FRAME_OPTIONS","anchor":"x-frame-options","children":[]}]},{"title":"Auth","anchor":"auth","children":[{"title":"AUTHENTICATION_BACKENDS","anchor":"authentication-backends","children":[]},{"title":"AUTH_USER_MODEL","anchor":"auth-user-model","children":[]},{"title":"LOGIN_REDIRECT_URL","anchor":"login-redirect-url","children":[]},{"title":"LOGIN_URL","anchor":"login-url","children":[]},{"title":"LOGOUT_REDIRECT_URL","anchor":"logout-redirect-url","children":[]},{"title":"PASSWORD_RESET_TIMEOUT","anchor":"password-reset-timeout","children":[]},{"title":"PASSWORD_HASHERS","anchor":"password-hashers","children":[]},{"title":"AUTH_PASSWORD_VALIDATORS","anchor":"auth-password-validators","children":[]}]},{"title":"Messages","anchor":"messages","children":[{"title":"MESSAGE_LEVEL","anchor":"message-level","children":[]},{"title":"MESSAGE_STORAGE","anchor":"message-storage","children":[]},{"title":"MESSAGE_TAGS","anchor":"message-tags","children":[]}]},{"title":"Sessions","anchor":"sessions","children":[{"title":"SESSION_CACHE_ALIAS","anchor":"session-cache-alias","children":[]},{"title":"SESSION_COOKIE_AGE","anchor":"session-cookie-age","children":[]},{"title":"SESSION_COOKIE_DOMAIN","anchor":"session-cookie-domain","children":[]},{"title":"SESSION_COOKIE_HTTPONLY","anchor":"session-cookie-httponly","children":[]},{"title":"SESSION_COOKIE_NAME","anchor":"session-cookie-name","children":[]},{"title":"SESSION_COOKIE_PATH","anchor":"session-cookie-path","children":[]},{"title":"SESSION_COOKIE_SAMESITE","anchor":"session-cookie-samesite","children":[]},{"title":"SESSION_COOKIE_SECURE","anchor":"session-cookie-secure","children":[]},{"title":"SESSION_ENGINE","anchor":"session-engine","children":[]},{"title":"SESSION_EXPIRE_AT_BROWSER_CLOSE","anchor":"session-expire-at-browser-close","children":[]},{"title":"SESSION_FILE_PATH","anchor":"session-file-path","children":[]},{"title":"SESSION_SAVE_EVERY_REQUEST","anchor":"session-save-every-request","children":[]},{"title":"SESSION_SERIALIZER","anchor":"session-serializer","children":[]}]},{"title":"Sites","anchor":"sites","children":[{"title":"SITE_ID","anchor":"site-id","children":[]}]},{"title":"Fichiers statiques","anchor":"static-files","children":[{"title":"STATIC_ROOT","anchor":"static-root","children":[]},{"title":"STATIC_URL","anchor":"static-url","children":[]},{"title":"STATICFILES_DIRS","anchor":"staticfiles-dirs","children":[{"title":"Préfixes (facultatifs)","anchor":"prefixes-optional","children":[]}]},{"title":"STATICFILES_FINDERS","anchor":"staticfiles-finders","children":[]}]},{"title":"Index thématique des réglages de base","anchor":"core-settings-topical-index","children":[{"title":"Cache","anchor":"cache","children":[]},{"title":"Base de données","anchor":"database","children":[]},{"title":"Débogage","anchor":"debugging","children":[]},{"title":"Messagerie","anchor":"email","children":[]},{"title":"Signalement d’erreurs","anchor":"error-reporting","children":[]},{"title":"Téléversement de fichiers","anchor":"file-uploads","children":[]},{"title":"Formulaires","anchor":"forms","children":[]},{"title":"Traduction et régionalisation (i18n/l10n)","anchor":"globalization-i18n-l10n","children":[{"title":"Internationalisation (i18n)","anchor":"internationalization-i18n","children":[]},{"title":"Régionalisation (l10n)","anchor":"localization-l10n","children":[]}]},{"title":"HTTP","anchor":"http","children":[]},{"title":"Journalisation","anchor":"id14","children":[]},{"title":"Modèles","anchor":"models","children":[]},{"title":"Sécurité","anchor":"security","children":[]},{"title":"Sérialisation","anchor":"serialization","children":[]},{"title":"Gabarits","anchor":"id15","children":[]},{"title":"Tests","anchor":"testing","children":[]},{"title":"URL","anchor":"urls","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/6.1/ref/"}],"prev":{"docname":"ref/schema-editor","title":"SchemaEditor","url":"/fr/6.1/ref/schema-editor/"},"next":{"docname":"ref/signals","title":"Signaux","url":"/fr/6.1/ref/signals/"},"formats":{"html":"/fr/6.1/ref/settings/","markdown":"/fr/6.1/ref/settings.md","json":"/fr/6.1/ref/settings.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/settings.txt","official":"https://docs.djangoproject.com/fr/6.1/ref/settings/","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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}