django-admin
et manage.py
¶
django-admin
est lâutilitaire en ligne de commande de Django pour les tĂąches administratives. Ce document prĂ©sente tout ce quâil peut faire.
De plus, manage.py
est créé automatiquement dans chaque projet Django. Il fait la mĂȘme chose que django-admin
mais dĂ©finit Ă©galement la variable dâenvironnement DJANGO_SETTINGS_MODULE
pour la faire pointer sur le fichier settings.py
du projet.
Le script django-admin
devrait se trouver dans votre chemin systÚme si vous avez installé Django via pip
. Sâil ne se trouve pas dans votre chemin, vĂ©rifiez que votre environnement virtuel est activĂ©.
GĂ©nĂ©ralement, en travaillant dans un seul projet Django, il est plus simple dâutiliser manage.py
plutĂŽt que django-admin
. Si vous devez basculer entre différents fichiers de réglages Django, utilisez la variable DJANGO_SETTINGS_MODULE
ou lâoption de ligne de commande --settings
de la commande django-admin
.
Les exemples en ligne de commande tout au long de ce document utilisent django-admin
par cohérence, mais tous les exemples pourraient tout aussi bien utiliser manage.py
ou python -m django
.
Utilisation¶
$ django-admin <command> [options]
$ manage.py <command> [options]
$ python -m django <command> [options]
...\> django-admin <command> [options]
...\> manage.py <command> [options]
...\> py -m django <command> [options]
command
doit correspondre Ă lâune des commandes mentionnĂ©es dans ce document. options
, qui est facultatif, doit correspondre à zéro ou plusieurs options disponibles pour la commande concernée.
Obtention dâaide¶
-
django-admin help
¶
Lancez django-admin help
pour afficher des informations dâutilisation et une liste des commandes fournies par chaque application.
Lancez django-admin help --commands
pour afficher une liste des commandes disponibles.
Lancez django-admin help <command>
pour afficher une description de la commande concernée et une liste de ses options disponibles.
Noms dâapplications¶
Plusieurs commandes acceptent une liste de « noms dâapplications ». Un nom dâapplication est le nom de base du paquet contenant les modĂšles. Par exemple, si votre rĂ©glage INSTALLED_APPS
contient la chaĂźne 'mysite.blog'
, le nom dâapplication est blog
.
Détermination de la version¶
-
django-admin version
¶
Lancez django-admin version
pour afficher la version actuelle de Django.
Lâaffichage correspond au schĂ©ma dĂ©crit dans la PEP 440:
1.4.dev17026
1.4a1
1.4
Affichage du contenu de débogage¶
Utilisez --verbosity
, le cas Ă©chĂ©ant, pour indiquer la quantitĂ© dâinformations indicatives et de dĂ©bogage que django-admin
affiche dans la console.
Commandes disponibles¶
check
¶
-
django-admin check [app_label [app_label ...]]
¶
Utilise lâinfrastructure de contrĂŽle systĂšme pour inspecter le projet Django dans son intĂ©gralitĂ© Ă la recherche de problĂšmes courants.
Par dĂ©faut, toutes les applications sont contrĂŽlĂ©es. Vous pouvez vĂ©rifier un sous-ensemble dâapplications en fournissant une liste dâĂ©tiquettes dâapplication en paramĂštres :
django-admin check auth admin myapp
-
--tag
TAGS
,
-t
TAGS
¶
Lâinfrastructure de contrĂŽle systĂšme effectue de nombreux types de contrĂŽles qui sont catĂ©gorisĂ©s par des Ă©tiquettes. Celles-ci permettent de limiter les contrĂŽles effectuĂ©s Ă ceux dâune catĂ©gorie particuliĂšre. Par exemple, pour nâeffectuer que les contrĂŽles de modĂšles et de compatibilitĂ©, exĂ©cutez :
django-admin check --tag models --tag compatibility
-
--database
DATABASE
¶
Indique la base de données pour laquelle effectuer les contrÎles qui nécessitent un accÚs à une base de données
django-admin check --database default --database other
Par défaut, ces contrÎles ne sont pas effectués.
-
--list-tags
¶
Affiche la liste de toutes les étiquettes disponibles.
-
--deploy
¶
Active certains contrÎles supplémentaires qui ne sont valables que pour des réglages de déploiement.
Vous pouvez utiliser cette option dans votre environnement local de développement, mais comme vos réglages de développement local ne contiennent pas forcément beaucoup de réglages de production, il est généralement souhaitable de faire pointer la commande check
vers un autre module de rĂ©glages, soit en dĂ©finissant la variable dâenvironnement DJANGO_SETTINGS_MODULE
, soit en passant lâoption --settings
:
django-admin check --deploy --settings=production_settings
Ou vous pouvez la lancer directement dans un systÚme en production ou préproduction pour vérifier que les bons réglages sont définis (en omettant --settings
). Il est mĂȘme possible dâintĂ©grer la commande dans votre suite de tests dâintĂ©gration.
-
--fail-level
{CRITICAL,ERROR,WARNING,INFO,DEBUG}
¶
DĂ©finit le niveau de message qui produira la sortie de la commande avec un code dâĂ©tat diffĂ©rent de zĂ©ro. La valeur par dĂ©faut est ERROR
.
compilemessages
¶
-
django-admin compilemessages
¶
Compile les fichiers .po
créés par makemessages
en fichiers .mo
utilisables par lâoutil intĂ©grĂ© gettext
. Voir Internationalisation et régionalisation.
-
--locale
LOCALE
,
-l
LOCALE
¶
Indique la ou les langues à traiter. Sans information, toutes les langues sont traitées.
-
--exclude
EXCLUDE
,
-x
EXCLUDE
¶
Indique les langues Ă exclure du traitement de la commande. Sans autre information, aucune langue nâest exclue.
-
--use-fuzzy
,
-f
¶
Inclut les traductions approximatives (« fuzzy ») dans les fichiers compilés.
Exemple dâutilisation :
django-admin compilemessages --locale=pt_BR
django-admin compilemessages --locale=pt_BR --locale=fr -f
django-admin compilemessages -l pt_BR
django-admin compilemessages -l pt_BR -l fr --use-fuzzy
django-admin compilemessages --exclude=pt_BR
django-admin compilemessages --exclude=pt_BR --exclude=fr
django-admin compilemessages -x pt_BR
django-admin compilemessages -x pt_BR -x fr
-
--ignore
PATTERN
,
-i
PATTERN
¶
Ignore répertoires correspondant au motif de type glob
donnĂ©. Lâoption peut ĂȘtre indiquĂ©e plusieurs fois pour des motifs diffĂ©rents.
Exemple dâutilisation :
django-admin compilemessages --ignore=cache --ignore=outdated/*/locale
createcachetable
¶
-
django-admin createcachetable
¶
CrĂ©e les tables de cache Ă lâusage du moteur de cache en base de donnĂ©es en utilisant les informations du fichier des rĂ©glages. Voir Lâinfrastructure de cache dans Django pour plus dâinformations.
-
--database
DATABASE
¶
Indique la base de données dans laquelle la table de cache sera créée. La valeur par défaut est default
.
-
--dry-run
¶
Affiche le code SQL qui sera exĂ©cutĂ© sans rĂ©ellement lâexĂ©cuter, de sorte que vous pouvez le personnaliser ou utiliser le systĂšme des migrations.
dbshell
¶
-
django-admin dbshell
¶
Lance le client en ligne de commande correspondant au moteur de base de données défini dans le réglage ENGINE
, en respectant les paramÚtres de connexion définis dans les réglages USER
, PASSWORD
, etc.
- Pour PostgreSQL, cette commande lance le client en ligne de commande
psql
. - Pour MySQL, cette commande lance le client en ligne de commande
mysql
. - Pour SQLite, cette commande lance le client en ligne de commande
sqlite3
. - Pour Oracle, cette commande lance le client en ligne de commande
sqlplus
.
Cette commande compte sur le fait que les programmes sont accessibles dans le chemin dâexĂ©cution afin quâen appelant leur nom (psql
, mysql
, sqlite3
, sqlplus
), le bon programme est lancĂ©. Il nây a pas dâastuce pour indiquer manuellement le chemin du programme de base de donnĂ©es.
-
--database
DATABASE
¶
Indique la base de donnĂ©es pour laquelle le shell doit ĂȘtre ouvert. La valeur par dĂ©faut est 'default'
.
-
--
ARGUMENTS
¶
Tout paramÚtre suivant le séparateur --
sera transmis au client de ligne de commande sous-jacent. Par exemple, avec PostgreSQL, il est possible dâutiliser lâoption -c
de la commande psql
pour exĂ©cuter une requĂȘte SQL brute directement :
$ django-admin dbshell -- -c 'select current_user'
current_user
--------------
postgres
(1 row)
...\> django-admin dbshell -- -c 'select current_user'
current_user
--------------
postgres
(1 row)
Avec MySQL/MariaDB, il est possible de faire de mĂȘme avec lâoption -e
de la commande mysql
:
$ django-admin dbshell -- -e "select user()"
+----------------------+
| user() |
+----------------------+
| djangonaut@localhost |
+----------------------+
...\> django-admin dbshell -- -e "select user()"
+----------------------+
| user() |
+----------------------+
| djangonaut@localhost |
+----------------------+
diffsettings
¶
-
django-admin diffsettings
¶
Affiche les différences entre le fichier de réglages actuel et les réglages par défaut de Django (ou un autre fichier de réglages indiqué par --default
).
Les réglages qui ne figurent pas dans les réglages par défaut sont suivis par "###"
. Par exemple, les réglages par défaut ne définissent pas ROOT_URLCONF
, donc ROOT_URLCONF
est suivi par "###"
dans lâaffichage que produit diffsettings
.
-
--all
¶
Affiche tous les rĂ©glages, mĂȘme sâils contiennent la valeur par dĂ©faut de Django. Ces rĂ©glages sont alors prĂ©fixĂ©s par "###"
.
-
--default
MODULE
¶
Le module de réglages avec lequel comparer les réglages en cours. Laissez vide pour comparer avec les réglages par défaut de Django.
-
--output
{hash,unified}
¶
Définit le format de sortie. Les valeurs disponibles sont hash
et unified
. hash
est le mode par défaut qui produit le résultat décrit ci-dessus. unified
affiche le résultat de maniÚre semblable à diff -u
. Les réglages par défaut sont préfixés par un signe moins, suivis par le réglage modifié préfixé par un signe plus.
dumpdata
¶
-
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
¶
Affiche dans la sortie standard toutes les données de la base de données associée à ou aux applications nommées.
Si aucun nom dâapplication nâest indiquĂ©, le contenu de toutes les applications installĂ©es est affichĂ©.
La sortie de dumpdata
peut ĂȘtre utilisĂ©e comme source dâentrĂ©e pour loaddata
.
Notez que dumpdata
utilise le gestionnaire par dĂ©faut des modĂšles lors de la sĂ©lection des enregistrements Ă afficher. Si vous avez configurĂ© un gestionnaire personnalisĂ© comme gestionnaire par dĂ©faut et quâil exclut certains des enregistrements existants, vous nâobtiendrez alors pas lâensemble des objets dans lâaffichage.
-
--all
,
-a
¶
Utilise le gestionnaire de base de Django, affichant ainsi des enregistrements qui ne seraient pas visibles ou qui seraient modifiĂ©s en raison dâun gestionnaire personnalisĂ©.
-
--format
FORMAT
¶
Indique le format de sĂ©rialisation du rĂ©sultat. Par dĂ©faut, il sâagit de JSON. Les formats pris en charge sont Ă©numĂ©rĂ©s dans Formats de sĂ©rialisation.
-
--indent
INDENT
¶
Indique le nombre dâespaces dâindentation Ă utiliser pour le rĂ©sultat. Par dĂ©faut, il nây en a aucun, ce qui fait que toutes les donnĂ©es sâaffichent sur une seule ligne.
-
--exclude
EXCLUDE
,
-e
EXCLUDE
¶
EmpĂȘche certaines applications ou modĂšles (dĂ©signĂ©s sous la forme Ă©tiquette_app.NomModĂšle
) dâĂȘtre affichĂ©s. Si vous indiquez un nom de modĂšle, seul ce modĂšle sera exclu, et non pas toute lâapplication. Il est aussi possible de mĂ©langer des noms dâapplications et des noms de modĂšles.
Pour exclure plusieurs applications, indiquez plusieurs fois --exclude
:
django-admin dumpdata --exclude=auth --exclude=contenttypes
-
--database
DATABASE
¶
Indique la base de données à partir de laquelle les données seront produites. La valeur par défaut est 'default'
.
-
--natural-foreign
¶
Utilise la méthode de modÚle natural_key()
pour sĂ©rialiser dâĂ©ventuelles relations de clĂ© Ă©trangĂšres ou plusieurs-Ă -plusieurs vers des objets du type que dĂ©finit la mĂ©thode. Si vous exportez des objets Permission
de contrib.auth
ou des objets ContentType
de contrib.contenttypes
, il est recommandĂ© dâutiliser cette option. Consultez la documentation sur les clĂ©s naturelles pour plus de dĂ©tails sur cette option et la suivante.
-
--natural-primary
¶
Omet la clĂ© primaire dans les donnĂ©es sĂ©rialisĂ©es de cet objet dans la mesure oĂč elle peut ĂȘtre calculĂ©e durant la dĂ©sĂ©rialisation.
-
--pks
PRIMARY_KEYS
¶
Nâaffiche que les objets dĂ©signĂ©s par une liste de clĂ©s primaires sĂ©parĂ©es par des virgules. Cette option nâest valable que lorsque lâexportation concerne un seul modĂšle. Par dĂ©faut, touts les enregistrements du modĂšle sont exportĂ©s.
-
--output
OUTPUT
,
-o
OUTPUT
¶
Indique le fichier dans lequel les donnĂ©es sĂ©rialisĂ©es doivent ĂȘtre Ă©crites. Par dĂ©faut, les donnĂ©es sâaffichent sur la sortie standard.
Lorsque cette option est définie et que --verbosity
est plus grande que 0 (par dĂ©faut), une barre de progression sâaffiche dans le terminal.
Compression des instantanés¶
Le fichier de sortie peut ĂȘtre compressĂ© avec lâun des formats bz2
, gz
, lzma
ou xz
en terminant le nom de fichier indiquĂ© par lâextension correspondante. Par exemple, pour produire des donnĂ©es dans un fichier JSON compressĂ©
django-admin dumpdata -o mydata.json.gz
flush
¶
-
django-admin flush
¶
Supprime toutes les donnĂ©es de la base de donnĂ©es et rĂ©exĂ©cute tout gestionnaire de post-synchronisation. La table contenant les informations dâapplication des migrations nâest pas effacĂ©e.
If you would rather start from an empty database and rerun all migrations, you
should drop and recreate the database and then run migrate
instead.
-
--noinput
,
--no-input
¶
Ăvite toute demande interactive Ă lâutilisateur.
-
--database
DATABASE
¶
Indique la base de donnĂ©es quâil sâagit de rĂ©initialiser. La valeur par dĂ©faut est default
.
inspectdb
¶
-
django-admin inspectdb [table [table ...]]
¶
Introspecte les tables de base de données de la base désignée dans le réglage NAME
et affiche un module de modĂšle Django (un fichier models.py
) vers la sortie standard.
Vous pouvez choisir quelles tables ou vues inspecter en passant leur nom en paramĂštre. Si aucun paramĂštre nâest indiquĂ©, les modĂšles pour les vues ne sont créés que si lâoption --include-views
est indiquĂ©e. Des modĂšles pour les tables de partition sont créées avec PostgreSQL si lâoption --include-partitions
est indiquée.
Cette commande est utile dans le cas dâune base de donnĂ©es existante que vous aimeriez utilisez avec Django. Le script inspecte la base de donnĂ©es et crĂ©e un modĂšle pour chacune de ses tables.
Comme lâon peut sây attendre, les modĂšles créés possĂšdent un attribut pour chaque champ de table. Notez que inspectdb
gĂšre quelques cas particuliers dans sa maniĂšre de nommer les champs :
- Si
inspectdb
ne peut pas faire correspondre un type de colonne Ă un type de champ de modĂšle, il utiliseTextField
et ajoute le commentaire'This field type is a guess.'
(ce type de champ est approximatif) à cÎté de la définition du champ dans le modÚle généré. Les champs reconnus peuvent dépendre des applications figurant dansINSTALLED_APPS
. Par exemple,django.contrib.postgres
ajoute la reconnaissance de plusieurs types de champs spécifiques à PostgreSQL. - Si le nom de colonne de base de données est un mot Python réservé (comme
'pass'
,'class'
ou'for'
),inspectdb
ajoute'_field'
au nom dâattribut. Par exemple, si une table possĂšde une colonne``âforâ, le modĂšle gĂ©nĂ©rĂ© contiendra un champ ``'for_field'
dont lâattributdb_column
sera'for'
.inspectdb
ajoute le commentaire Python'Field renamed because it was a Python reserved word.'
(champ renommĂ© car il sâagit dâun mot Python rĂ©servĂ©) aprĂšs le champ.
Cette fonctionnalitĂ© doit ĂȘtre comprise comme un raccourci, pas comme une gĂ©nĂ©ration de modĂšle dĂ©finitive. AprĂšs lâexĂ©cution de la commande, il est nĂ©cessaire de rĂ©viser vous-mĂȘme les modĂšles gĂ©nĂ©rĂ©s pour faire les adaptations nĂ©cessaires. En particulier, il est gĂ©nĂ©ralement utile de rĂ©arranger lâordre des modĂšles afin que les modĂšles se rĂ©fĂ©rant Ă dâautres modĂšles apparaissent dans le bon ordre.
Django ne crĂ©e pas de valeur par dĂ©faut en base de donnĂ©es lorsquâun paramĂštre default
est dĂ©fini pour un champ de modĂšle. Inversement, les valeurs par dĂ©faut en base de donnĂ©es ne sont pas traduites en valeurs par dĂ©faut de champ de modĂšle, ni dĂ©tectĂ© dâaucune autre façon par
Par défaut, inspectdb
crĂ©e des modĂšles non pilotĂ©s. Câest-Ă -dire que la prĂ©sence de managed = False
dans la classe Meta
des modĂšles indique Ă Django de ne pas piloter la crĂ©ation de la table correspondante, ni sa modification ou sa destruction. Si vous voulez autoriser Django Ă piloter le cycle de vie des tables, il est nĂ©cessaire de modifier lâoption managed
pour lui donner la valeur True
(ou carrĂ©ment lâenlever, car True
est sa valeur par défaut).
Notes spécifiques à certaines bases de données¶
Oracle¶
- Des modĂšles sont créés pour les vues matĂ©rialisĂ©es si lâoption
--include-views
est indiquée.
PostgreSQL¶
- Des modÚles sont créés pour les tables étrangÚres.
- Des modĂšles sont créés pour les vues matĂ©rialisĂ©es si lâoption
--include-views
est indiquĂ©e. - Des modĂšles sont créés pour les tables de partition si lâoption
--include-partitions
est indiquée.
-
--database
DATABASE
¶
Indique la base de donnĂ©es quâil sâagit dâexaminer. La valeur par dĂ©faut est default
.
-
--include-partitions
¶
Si cette option est présente, des modÚles sont aussi générés pour les partitions.
Seule la prise en charge par PostgreSQL est implémentée.
-
--include-views
¶
Si cette option est présente, des modÚles sont aussi générés pour les vues de bases de données.
loaddata
¶
-
django-admin loaddata fixture [fixture ...]
¶
Recherche et charge le contenu de lâinstantanĂ© indiquĂ© dans la base de donnĂ©es.
-
--database
DATABASE
¶
Indique la base de données dans laquelle les données seront chargées. La valeur par défaut est default
.
-
--ignorenonexistent
,
-i
¶
Ignore les champs et les modĂšles qui pourraient avoir Ă©tĂ© enlevĂ©s depuis que lâinstantanĂ© a Ă©tĂ© initialement produit.
-
--app
APP_LABEL
¶
Désigne une seule application dans laquelle rechercher des instantanés au lieu de chercher dans toutes les applications.
-
--format
FORMAT
¶
Indique le format de sérialisation (e.g., json
ou xml
) pour les instantanĂ©s lus Ă partir de lâentrĂ©e standard stdin.
-
--exclude
EXCLUDE
,
-e
EXCLUDE
¶
Exclut le chargement des instantanés des applications et modÚles indiqués (sous la forme étiquette_app
ou `` Ă©tiquette_app.NomModĂšle``). Lâoption peut ĂȘtre indiquĂ©e plusieurs fois pour exclure plus dâune application ou modĂšle.
Quâest-ce quâun « instantanĂ© » (fixture en anglais) ?¶
Un instantanĂ© est un ensemble de fichiers contenant du contenu sĂ©rialisĂ© de base de donnĂ©es. Chaque instantanĂ© possĂšde un nom unique et les fichiers composant lâinstantanĂ© peuvent ĂȘtre distribuĂ©s dans plusieurs rĂ©pertoires et plusieurs applications.
Django recherche les instantanés dans trois emplacements :
- Dans le répertoire
fixtures
de chaque application installée - Dans tout répertoire énuméré dans le réglage
FIXTURE_DIRS
- Dans le chemin explicitement contenu dans le nom de lâinstantanĂ©
Django charge tous les instantanĂ©s quâil trouve Ă ces emplacements et qui correspondent aux noms dâinstantanĂ©s indiquĂ©s.
Si le nom dâinstantanĂ© possĂšde une extension de fichier, seuls les instantanĂ©s de ce type seront chargĂ©s. Par exemple :
django-admin loaddata mydata.json
ne charge que les instantanés JSON nommés mydata
. Lâextension dâinstantanĂ© doit correspondre au nom enregistrĂ© dâun sĂ©rialiseur (par ex. json
ou xml
).
Si vous omettez lâextension, Django recherche tous les types dâinstantanĂ© disponibles pour chaque instantanĂ© trouvĂ©. Par exemple :
django-admin loaddata mydata
recherche tout instantanĂ© ou type dâinstantanĂ© nommĂ© mydata
. Si un rĂ©pertoire dâinstantanĂ© contient mydata.json
, cet instantané serait chargé comme instantané JSON.
Les noms dâinstantanĂ©s peuvent contenir une partie « chemin ». Ces rĂ©pertoires sont alors inclus dans le chemin de recherche. Par exemple :
django-admin loaddata foo/bar/mydata.json
recherche <étiquette_app>/fixtures/foo/bar/mydata.json
pour chaque application installée, <nom_rép>/foo/bar/mydata.json
pour chaque répertoire dans FIXTURE_DIRS
ainsi que le chemin littéral foo/bar/mydata.json
.
Lorsque des fichiers dâinstantanĂ©s sont traitĂ©s, les donnĂ©es sont enregistrĂ©es telles quelles dans la base de donnĂ©es. Les mĂ©thodes save()
définies dans les modÚles ne sont pas appelées et les éventuels signaux pre_save
ou post_save
sont appelés avec raw=True
car lâinstance ne contient que les attributs locaux du modĂšle. Il est par exemple imaginable de dĂ©sactiver les gestionnaires accĂ©dant aux champs liĂ©s absents lors du chargement des instantanĂ©s, car une exception serait gĂ©nĂ©rĂ©e dans le cas contraire :
from django.db.models.signals import post_save
from .models import MyModel
def my_handler(**kwargs):
# disable the handler during fixture loading
if kwargs['raw']:
return
...
post_save.connect(my_handler, sender=MyModel)
On pourrait aussi écrire un décorateur pour encapsuler cette logique :
from functools import wraps
def disable_for_loaddata(signal_handler):
"""
Decorator that turns off signal handlers when loading fixture data.
"""
@wraps(signal_handler)
def wrapper(*args, **kwargs):
if kwargs['raw']:
return
signal_handler(*args, **kwargs)
return wrapper
@disable_for_loaddata
def my_handler(**kwargs):
...
Il faut cependant ĂȘtre conscient que cette logique dĂ©sactivera les signaux lors de chaque dĂ©sĂ©rialisation des instantanĂ©s, pas seulement durant loaddata
.
Notez que lâordre de chargement des fichiers dâinstantanĂ©s nâest pas dĂ©terminĂ©. Cependant, toutes les donnĂ©es dâinstantanĂ©s sont installĂ©es dans une seule transaction, afin que des donnĂ©es dâun instantanĂ© puissent rĂ©fĂ©rencer des donnĂ©es dâun autre instantanĂ©. Si le moteur de base de donnĂ©es prend en charge les contraintes au niveau ligne, ces contraintes sont contrĂŽlĂ©es Ă la fin de la transaction.
La commande dumpdata
peut ĂȘtre utilisĂ©e pour gĂ©nĂ©rer le contenu donnĂ© Ă loaddata
.
Instantanés compressés¶
Les instantanĂ©s peuvent ĂȘtre compressĂ©s dans les formats zip
, gz
, bz2
, lzma
ou xz
. Par exemple :
django-admin loaddata mydata.json
recherche lâun des fichiers mydata.json
, mydata.json.zip
, mydata.json.gz
, mydata.json.bz2
, mydata.json.lzma
ou mydata.json.xz
. Le premier fichier contenu dans une archive compressée est utilisé.
Notez que si deux instantanĂ©s de mĂȘme nom mais de type diffĂ©rent sont trouvĂ©s (par exemple si mydata.json
et mydata.xml.gz
sont trouvĂ©s dans le mĂȘme rĂ©pertoire dâinstantanĂ©s), lâinstallation des instantanĂ©s est interrompue et toute donnĂ©e dĂ©jĂ installĂ©e par lâappel Ă loaddata
est retirée de la base de données.
MySQL avec MyISAM et les instantanés
Le moteur de stockage MyISAM de MySQL ne gĂšre ni les transactions, ni les contraintes. Si vous utilisez ce moteur, les donnĂ©es dâinstantanĂ©s ne sont pas validĂ©es et dâĂ©ventuelles donnĂ©es dĂ©jĂ chargĂ©es en base de donnĂ©es ne sont pas effacĂ©es dans le cas oĂč des fichiers dâinstantanĂ©s conflictuels sont trouvĂ©s.
Instantanés spécifiques à certaines bases de données¶
Si vous vous trouvez dans une configuration avec plusieurs bases de donnĂ©es, il se pourrait que vous vouliez charger certains instantanĂ©s dans une base de donnĂ©es mais pas dans lâautre. Dans cette situation, vous pouvez insĂ©rer des identifiants de base de donnĂ©es dans les noms des instantanĂ©s.
For example, if your DATABASES
setting has a âusersâ database
defined, name the fixture mydata.users.json
or
mydata.users.json.gz
and the fixture will only be loaded when you
specify you want to load data into the users
database.
Chargement dâinstantanĂ©s Ă partir de stdin
¶
Vous pouvez utiliser un tiret comme nom dâinstantanĂ© afin de charger les donnĂ©es depuis sys.stdin
. Par exemple
django-admin loaddata --format=json -
Lors de la lecture Ă partir de stdin
, lâoption --format
est obligatoire pour indiquer le format de sérialisation des données (par ex. json
ou xml
).
Le chargement Ă partir de stdin
est utile avec les redirections dâentrĂ©e/sortie standard. Par exemple
django-admin dumpdata --format=json --database=test app_label.ModelName | django-admin loaddata --format=json --database=prod -
makemessages
¶
-
django-admin makemessages
¶
Parcourt lâentier de lâarborescence de code source Ă partir du rĂ©pertoire actuel et extrait toutes les chaĂźnes marquĂ©es pour la traduction. Elle crĂ©e (ou met Ă jour) un fichier de messages dans le rĂ©pertoire conf/locale
(pour lâarborescence Django) ou locale
(pour les projets et applications). AprÚs la mise à jour des fichiers de messages, il est encore nécessaire de les compiler par compilemessages
pour quâils soient utilisables par lâoutil intĂ©grĂ© gettext
. Voir la documentation dâinternationalisation pour plus de dĂ©tails.
Cette commande ne demande pas de réglages configurés. Cependant, lorsque les réglages ne sont pas configurés, la commande ne peut pas ignorer les répertoires MEDIA_ROOT
et STATIC_ROOT
, ni inclure LOCALE_PATHS
.
-
--all
,
-a
¶
Met Ă jour les fichiers de messages pour toutes les langues disponibles.
-
--extension
EXTENSIONS
,
-e
EXTENSIONS
¶
Indique une liste dâextensions de fichiers Ă examiner (par dĂ©faut : html
, txt
, py
ou js
si --domain
vaut js
).
Exemple dâutilisation :
django-admin makemessages --locale=de --extension xhtml
Séparez plusieurs extensions par une virgule ou utilisez plusieurs occurrences de -e
ou --extension
:
django-admin makemessages --locale=de --extension=html,txt --extension xml
-
--locale
LOCALE
,
-l
LOCALE
¶
Indique les langues Ă traiter.
-
--exclude
EXCLUDE
,
-x
EXCLUDE
¶
Indique les langues Ă exclure du traitement de la commande. Sans autre information, aucune langue nâest exclue.
Exemple dâutilisation :
django-admin makemessages --locale=pt_BR
django-admin makemessages --locale=pt_BR --locale=fr
django-admin makemessages -l pt_BR
django-admin makemessages -l pt_BR -l fr
django-admin makemessages --exclude=pt_BR
django-admin makemessages --exclude=pt_BR --exclude=fr
django-admin makemessages -x pt_BR
django-admin makemessages -x pt_BR -x fr
-
--domain
DOMAIN
,
-d
DOMAIN
¶
Indique le domaine des fichiers de messages. Les options acceptées sont :
django
pour tous les fichiers*.py
,*.html
et*.txt
(par défaut)djangojs
pour les fichiers*.js
-
--symlinks
,
-s
¶
Suit les liens symboliques vers les répertoires lors de la recherche de nouvelles chaßnes à traduire.
Exemple dâutilisation :
django-admin makemessages --locale=de --symlinks
-
--ignore
PATTERN
,
-i
PATTERN
¶
Ignore les fichiers ou répertoires correspondant au motif de type glob
donnĂ©. Lâoption peut ĂȘtre indiquĂ©e plusieurs fois pour des motifs diffĂ©rents.
Ces motifs sont utilisés par défaut : 'CVS'
, '.*'
, '*~'
, '*.pyc'
.
Exemple dâutilisation :
django-admin makemessages --locale=en_US --ignore=apps/* --ignore=secret/*.html
-
--no-default-ignore
¶
Désactive les valeurs par défaut de --ignore
.
-
--no-wrap
¶
Désactive la segmentation des longues lignes de messages sur plusieurs lignes dans les fichiers de langues.
-
--no-location
¶
Supprime lâĂ©criture des lignes de commentaire #: filename:line
dans les fichiers de langues. Avec cette option, les traducteurs ayant de bonnes notions techniques auront plus de peine Ă saisir le contexte de chaque message.
-
--add-location
[{full,file,never}]
¶
ContrĂŽle les lignes de commentaires #: nom_fichier:ligne
dans les fichiers de langue. Si lâoption est :
full
(par défaut) : les lignes contiennent à la fois les noms de fichiers et les numéros de lignes.file
: le numéro de ligne est omis.never
: les lignes sont supprimĂ©es (effet identique Ă--no-location
).
Nécessite gettext
0.19 ou plus récent.
-
--keep-pot
¶
EmpĂȘche la suppression des fichiers .pot temporaires gĂ©nĂ©rĂ©s avant de crĂ©er le ou les fichiers .po
. Cela peut ĂȘtre utile pour dĂ©boguer dâĂ©ventuelles erreurs empĂȘchant la crĂ©ation des fichiers de langues finaux.
Voir aussi
Consultez Personnalisation de la commande makemessages pour des instructions sur la façon de personnaliser les mots-clés que makemessages
transmet Ă xgettext
.
makemigrations
¶
-
django-admin makemigrations [app_label [app_label ...]]
¶
CrĂ©e de nouvelles migrations sur la base des modifications dĂ©tectĂ©es dans les modĂšles. Les migrations, leurs relations avec les applications et dâautre sujets encore sont abordĂ©s en dĂ©tails dans la documentation sur les migrations.
En indiquant un ou plusieurs noms dâapplications en paramĂštre limite la crĂ©ation de migrations aux applications dĂ©signĂ©es ainsi quâĂ leurs dĂ©pendances (la table Ă lâautre bout dâune clĂ© ForeignKey
, par exemple).
Pour ajouter des migrations Ă une application qui nâa pas de rĂ©pertoire migrations
, lancez makemigrations
avec lâĂ©tiquette de lâapplication en paramĂštre.
-
--noinput
,
--no-input
¶
Supprime toute demande Ă lâutilisateur. SI une demande supprimĂ©e ne peut pas ĂȘtre rĂ©solue automatiquement, la commande se termine avec le code dâerreur 3.
-
--empty
¶
Produit une migration vide pour les applications donnĂ©es, en vue dâune modification manuelle. Cette option est rĂ©servĂ©e aux utilisateurs avancĂ©s et ne devrait pas ĂȘtre utilisĂ©e sans ĂȘtre familier du format des migrations, des opĂ©rations de migration et des dĂ©pendances entre les migrations.
-
--dry-run
¶
Montre les migrations qui seraient produites mais sans Ă©crire rĂ©ellement de fichier de migration sur le disque. Lâemploi de cette option accompagnĂ©e de --verbosity 3
montre Ă©galement les fichiers de migrations complets tels quâils seraient Ă©crits.
-
--merge
¶
Active la résolution des conflits de migration.
-
--name
NAME
,
-n
NAME
¶
Permet de donner aux migrations un nom de votre choix au lieu de celui qui est gĂ©nĂ©rĂ© automatiquement. Le nom doit ĂȘtre un identifiant Python valable.
-
--no-header
¶
GĂ©nĂšre des fichiers de migration sans lâen-tĂȘte dâhorodatage et de version Django.
-
--check
¶
Fait quitter makemigrations
avec un statut différent de 0 lorsque des modifications de modÚles sans migration correspondante sont détectés.
-
--scriptable
¶
Diverts log output and input prompts to stderr
, writing only paths of
generated migration files to stdout
.
migrate
¶
-
django-admin migrate [app_label] [migration_name]
¶
Actualise lâĂ©tat de la base de donnĂ©es en accord avec lâensemble des modĂšles et des migrations actuels. Les migrations, leurs relations avec les applications et dâautre sujets encore sont abordĂ©s en dĂ©tails dans la documentation sur les migrations.
Le comportement de cette commande change en fonction des paramĂštres fournis :
- Pas de paramĂštre : toutes les applications appliquent toutes leurs migrations.
<étiquette_app>
: les migrations de lâapplication indiquĂ©e sont appliquĂ©es jusquâĂ la migration la plus rĂ©cente. Cela peut aussi provoquer lâapplication des migrations dâautres applications, en fonction des dĂ©pendances.<Ă©tiquette_app> <nom_migration>
: fait passer le schĂ©ma de base de donnĂ©es Ă lâĂ©tat oĂč la migration indiquĂ©e est appliquĂ©e, mais sans que les migrations ultĂ©rieures de la mĂȘme application ne soient appliquĂ©es ; ceci peut conduire Ă dĂ©faire certaines migrations si les migrations postĂ©rieures Ă la migration nommĂ©e ont dĂ©jĂ Ă©tĂ© appliquĂ©es. Vous pouvez utiliser un prĂ©fixe du nom de migration, par ex.0001
, pour autant quâil soit unique pour le nom dâapplication indiquĂ©. Utilisez le nomzero
pour tout migrer Ă lâenvers, câest-Ă -dire dĂ©faire toutes les migrations dâune application.
Avertissement
Lorsque vous défaites des migrations, toutes les migrations dépendantes seront aussi défaites, quel que soit le nom <app_label>
. Vuos pouvez utiliser --plan
pour contrĂŽler Ă lâavance quelles migrations seront dĂ©faites.
-
--database
DATABASE
¶
Désigne la base de données à migrer. La valeur par défaut est 'default'
.
-
--fake
¶
Marque les migrations comme appliquĂ©es jusquâĂ la migration cible (en suivant les rĂšgles ci-dessus), mais sans lancer rĂ©ellement dâinstructions SQL pour modifier le schĂ©ma de base de donnĂ©es.
Ceci est destinĂ© aux utilisateurs avancĂ©s pour manipuler directement lâĂ©tat actuel des migrations dans le cas oĂč ils appliquent manuellement certains changements ; soyez conscient que lâemploi de --fake
crĂ©e le risque de placer la table des Ă©tats de migration dans un Ă©tat oĂč une intervention manuelle deviendra indispensable pour que les migrations puissent de nouveau fonctionner correctement.
-
--fake-initial
¶
Permet Ă Django de sauter la migration initiale dâune application si toutes les tables de base de donnĂ©es avec les noms de tous les modĂšles créés par toutes les opĂ©rations CreateModel
de cette migration existent dĂ©jĂ . Cette option est prĂ©vue pour le premier lancement des migrations sur une base de donnĂ©es qui existait dĂ©jĂ avant lâutilisation des migrations. Cependant, Ă part le nom des tables, cette option ne vĂ©rifie pas que le schĂ©ma de base de donnĂ©es corresponde exactement aux modĂšles, ce qui signifie quâelle ne doit ĂȘtre utilisĂ©e que si vous savez pertinemment que le schĂ©ma actuel correspond bel et bien Ă ce qui est enregistrĂ© dans la migration initiale.
-
--plan
¶
Montre les opérations de migration qui seront effectuées pour la commande migrate
indiquée.
-
--run-syncdb
¶
Permet de créer les tables des applications sans migrations. Bien que ce ne soit pas recommandé, le systÚme des migrations est parfois trop lent avec de grands projets qui ont des centaines de modÚles.
-
--noinput
,
--no-input
¶
Supprime toute demande interactive Ă lâutilisateur. Un exemple de demande pourrait concerner la suppression des types de contenus obsolĂštes.
-
--check
¶
Fait quitter migrate
avec un statut différent de 0 lorsque des migrations non appliquées sont détectées.
-
--prune
¶
Deletes nonexistent migrations from the django_migrations
table. This is
useful when migration files replaced by a squashed migration have been removed.
See Fusion de migrations for more details.
optimizemigration
¶
-
django-admin optimizemigration app_label migration_name
¶
Optimizes the operations for the named migration and overrides the existing
file. If the migration contains functions that must be manually copied, the
command creates a new migration file suffixed with _optimized
that is meant
to replace the named migration.
-
--check
¶
Makes optimizemigration
exit with a non-zero status when a migration can be
optimized.
runserver
¶
-
django-admin runserver [addrport]
¶
DĂ©marre un serveur web de dĂ©veloppement lĂ©ger sur la machine locale. Par dĂ©faut, le serveur fonctionne sur le port 8000 Ă lâadresse IP 127.0.0.1
. Vous pouvez lui transmettre explicitement une adresse IP et un numéro de port.
Si vous lancez ce script avec un utilisateur ayant des privilĂšges normaux (ce qui est recommandĂ©), il se peut que vous nâayez pas les permissions dâutiliser un petit numĂ©ro de port. Les petits numĂ©ros de port sont rĂ©servĂ©s au super-utilisateur (root).
Ce serveur utilise lâobjet application WSGI dĂ©signĂ© par le rĂ©glage WSGI_APPLICATION
.
NâUTILISEZ PAS CE SERVEUR DANS UN ENVIRONNEMENT DE PRODUCTION. Il nâa pas fait lâobjet dâaudits de sĂ©curitĂ© ni de tests de performance. (Et cela nâest pas prĂ©vu de changer. Notre mĂ©tier est de nous occuper de cadriciel web, pas de serveur web, et lâamĂ©lioration de ce serveur pour pouvoir gĂ©rer un environnement de production dĂ©passe les objectifs de Django).
Le serveur de dĂ©veloppement recharge automatiquement le code Python lors de chaque requĂȘte si nĂ©cessaire. Vous ne devez pas redĂ©marrer le serveur pour que les changements de code soient pris en compte. Cependant, certaines actions comme lâajout de fichiers ne provoquent pas de redĂ©marrage, il est donc nĂ©cessaire de redĂ©marrer manuellement le serveur dans ces cas.
Si vous utilisez Linux ou MacOS et que vous installez Ă la fois pywatchman et le service Watchman, ce sont des signaux du noyau qui permettent de recharger automatiquement le serveur (au lieu de consulter chaque seconde les dates de modification des fichiers). Cela amĂ©liore donc les performances pour les gros projets, ainsi quâun temps de rĂ©ponse rĂ©duit aprĂšs les modifications de code, une dĂ©tection des changements plus robuste et une rĂ©duction de consommation dâĂ©nergie. Django prend en charge pywatchman
1.2.0 ou plus récent.
De gros dossiers avec beaucoup de fichiers peuvent causer des problĂšmes de performance
Lors de lâutilisation de Watchman sur un projet incluant de gros dossiers non Python comme par exemple node_modules
, il est conseillĂ© dâignorer ces rĂ©pertoires pour de meilleures performances. Consultez la documentation de watchman pour plus dâinformations sur ce sujet.
DĂ©lai dâexpiration Watchman
-
DJANGO_WATCHMAN_TIMEOUT
¶
Le dĂ©lai dâexpiration par dĂ©faut du client Watchman
est de 5 secondes. Vous pouvez le modifier en dĂ©finissant la variable dâenvironnement DJANGO_WATCHMAN_TIMEOUT
.
Au dĂ©marrage du serveur et lors de chaque modification de code Python durant le fonctionnement du serveur, lâinfrastructure de contrĂŽle systĂšme recherche dâĂ©ventuelles erreurs courantes dans tout le projet Django (voir la commande check
). Si des erreurs sont dĂ©tectĂ©es, celles-ci sont affichĂ©es dans la sortie standard. Vous pouvez utiliser lâoption --skip-checks
pour omettre lâexĂ©cution des contrĂŽles systĂšme.
Vous pouvez lancer autant de serveurs en parallÚle que nécessaire, pour autant que ce soit sur des ports séparés, en exécutant plusieurs fois django-admin runserver
.
Note that the default IP address, 127.0.0.1
, is not accessible from other
machines on your network. To make your development server viewable to other
machines on the network, use its own IP address (e.g. 192.168.2.1
), 0
(shortcut for 0.0.0.0
), 0.0.0.0
, or ::
(with IPv6 enabled).
Vous pouvez indiquer une adresse IPv6 entourée par des crochets (par ex. [200a::1]:8000
). Cela active automatiquement la prise en charge de IPv6.
Il est aussi possible dâindiquer un nom dâhĂŽte uniquement formĂ© de caractĂšres ASCII.
Si lâapplication complĂ©mentaire staticfiles est activĂ©e (câest le cas par dĂ©faut dans les nouveaux projets), la commande runserver
est surchargée par sa propre commande runserver.
La journalisation de chaque requĂȘte et rĂ©ponse du serveur est envoyĂ©e au journaliseur django.server.
-
--noreload
¶
Désactive le recours au relanceur automatique. Cela signifie que toute modification de code Python effectuée pendant que le serveur tourne ne sera pas prise en compte si le module Python concerné a déjà été chargé en mémoire.
-
--nothreading
¶
DĂ©sactive lâutilisation des fils dâexĂ©cution avec le serveur de dĂ©veloppement. Par dĂ©faut, le serveur utilise plusieurs fils dâexĂ©cution (multithread).
-
--ipv6
,
-6
¶
Utilise IPv6 pour le serveur de dĂ©veloppement. Lâadresse IP par dĂ©faut passe alors de 127.0.0.1
Ă ::1
.
La prise en charge de lâoption --skip-checks
a été ajoutée.
Exemples dâutilisation de diffĂ©rents ports et adresses¶
Port 8000 sur lâadresse IP 127.0.0.1
:
django-admin runserver
Port 8000 sur lâadresse IP 1.2.3.4
:
django-admin runserver 1.2.3.4:8000
Port 7000 sur lâadresse IP 127.0.0.1
:
django-admin runserver 7000
Port 7000 sur lâadresse IP 1.2.3.4
:
django-admin runserver 1.2.3.4:7000
Port 8000 sur lâadresse IPv6 ::1
:
django-admin runserver -6
Port 7000 sur lâadresse IPv6 ::1
:
django-admin runserver -6 7000
Port 7000 sur lâadresse IPv6 2001:0db8:1234:5678::9
:
django-admin runserver [2001:0db8:1234:5678::9]:7000
Port 8000 sur lâadresse IPv4 de lâhĂŽte localhost
:
django-admin runserver localhost:8000
Port 8000 sur lâadresse IPv6 de lâhĂŽte localhost
:
django-admin runserver -6 localhost:8000
Service des fichiers statiques avec le serveur de développement¶
Par dĂ©faut, le serveur de dĂ©veloppement ne sâoccupe pas de servir les fichiers statiques de votre site (comme les fichiers CSS, les images, ce qui se trouve dans MEDIA_URL
, etc.). Si vous souhaitez configurer Django afin quâil serve les contenus statiques, consultez Gestion des fichiers statiques (par ex. images, JavaScript, CSS).
sendtestemail
¶
-
django-admin sendtestemail [email [email ...]]
¶
Envoie un courriel de test (pour confirmer le bon fonctionnement de lâenvoi de messages avec Django) aux destinataires indiquĂ©s. Par exemple :
django-admin sendtestemail foo@example.com bar@example.com
Il y a plusieurs options possibles, et vous pouvez combiner ces options sans problĂšme :
-
--managers
¶
Envoie le courriel aux adresses électroniques figurant dans MANAGERS
avec mail_managers()
.
-
--admins
¶
Envoie le courriel aux adresses électroniques figurant dans ADMINS
avec mail_admins()
.
shell
¶
-
django-admin shell
¶
Lance lâinterprĂ©teur interactif Python.
-
--interface
{ipython,bpython,python}
,
-i
{ipython,bpython,python}
¶
Indique le shell Ă utiliser. Par dĂ©faut, Django utilise IPython ou bpython sâils sont installĂ©s. Si les deux sont installĂ©s, vous pouvez indiquer lâinterprĂ©teur souhaitĂ© comme ceci :
IPython :
django-admin shell -i ipython
bpython :
django-admin shell -i bpython
Si vous avez lâun de ces shells « enrichis » installĂ© mais que vous aimeriez lancer lâinterprĂ©teur « brut » de Python, utilisez python
comme nom dâinterface, comme ceci :
django-admin shell -i python
-
--nostartup
¶
DĂ©sactive la lecture du script de dĂ©marrage pour lâinterprĂ©teur Python « simple ». Par dĂ©faut, le script lu est celui qui est dĂ©signĂ© par la variable dâenvironnement PYTHONSTARTUP
ou le script ~/.pythonrc.py
.
-
--command
COMMAND
,
-c
COMMAND
¶
Permet de transmettre une commande sous forme de texte à exécuter par Django, comme ceci :
django-admin shell --command="import django; print(django.__version__)"
Vous pouvez aussi passer du code par lâentrĂ©e standard afin de lâexĂ©cuter. Par exemple :
$ django-admin shell <<EOF
> import django
> print(django.__version__)
> EOF
Avec Windows, REPL est affichĂ© en raison des limites dâimplĂ©mentation de select.select()
sur cette plateforme.
showmigrations
¶
-
django-admin showmigrations [app_label [app_label ...]]
¶
Affiche toutes les migrations dâun projet. Vous pouvez choisir lâun des deux formats suivants :
-
--list
,
-l
¶
ĂnumĂšre toutes les applications connues par Django, les migrations disponibles pour chaque application et lâĂ©tat dâapplication de chaque migration (marquĂ© par un [X]
à cÎté du nom de la migration). Avec une --verbosity
de 2 ou plus, les dates/heures dâapplication sont aussi montrĂ©es.
Les applications sans migration sont également comprises dans la liste, mais le texte (no migrations)
sâaffiche sous leur nom.
Il sâagit du format dâaffichage par dĂ©faut.
-
--plan
,
-p
¶
Montre le plan de migration que Django va suivre pour appliquer les migrations. Comme pour --list
, les migrations appliquées sont marquées par une [X]
. Quand la verbositĂ© est plus grande que 1, toutes les dĂ©pendances dâune migration sont Ă©galement affichĂ©es.
Les paramĂštres app_label
limitent les rĂ©sultats affichĂ©s, mais il est tout de mĂȘme possible que des dĂ©pendances des applications indiquĂ©es soient aussi incluses.
-
--database
DATABASE
¶
Indique la base de données à examiner. La valeur par défaut est default
.
sqlflush
¶
-
django-admin sqlflush
¶
Affiche les commandes SQL qui seraient générées si la commande flush
était exécutée.
-
--database
DATABASE
¶
Indique la base de donnĂ©es pour laquelle les instructions SQL doivent ĂȘtre affichĂ©es. La valeur par dĂ©faut est default
.
sqlmigrate
¶
-
django-admin sqlmigrate app_label migration_name
¶
Affiche le code SQL correspondant à la migration nommée. Cela demande une connexion active à la base de données, que la commande utilise pour résoudre les noms de contraintes ; cela signifie que vous devez générer le code SQL par rapport à une copie de la base de données à laquelle vous souhaitez plus tard appliquer le résultat.
Remarquez que sqlmigrate
ne colore pas le résultat produit.
-
--backwards
¶
GénÚre le code SQL servant à défaire la migration. Par défaut, le code SQL créé est celui qui sert à appliquer la migration dans le sens progressif.
-
--database
DATABASE
¶
Indique la base de donnĂ©es pour laquelle les instructions SQL doivent ĂȘtre gĂ©nĂ©rĂ©es. La valeur par dĂ©faut est default
.
sqlsequencereset
¶
-
django-admin sqlsequencereset app_label [app_label ...]
¶
Affiche les instructions SQL de rĂ©initialisation des sĂ©quences relatives aux noms dâapplication donnĂ©s.
Les séquences sont des index utilisés par certains moteurs de base de données pour obtenir le prochain nombre disponible pour les champs incrémentés automatiquement.
Utilisez cette commande pour gĂ©nĂ©rer le code SQL pouvant servir Ă corriger les situations oĂč une sĂ©quence est dĂ©synchronisĂ©e par rapport aux donnĂ©es de son champ incrĂ©mentĂ© automatiquement.
-
--database
DATABASE
¶
Indique la base de donnĂ©es pour laquelle les instructions SQL doivent ĂȘtre affichĂ©es. La valeur par dĂ©faut est default
.
squashmigrations
¶
-
django-admin squashmigrations app_label [start_migration_name] migration_name
¶
Fusionne les migrations de étiquette_app
jusquâĂ et y compris nom_migration
en un nombre plus restreint de migrations, si possible. Les migrations fusionnĂ©es rĂ©sultantes peuvent figurer sans problĂšme au cĂŽtĂ© des migrations non fusionnĂ©es. Pour plus dâinformations, veuillez lire Fusion de migrations.
Lorsque start_migration_name
est indiquĂ©, Django nâinclut que les migrations commençant par cette migration y comprise. Cela aide Ă relativiser les limites du fusionnement des opĂ©rations de migration RunPython
et django.db.migrations.operations.RunSQL
.
-
--no-optimize
¶
DĂ©sactive lâoptimiseur lors de la gĂ©nĂ©ration dâune migration fusionnĂ©e. Par dĂ©faut, Django essaie dâoptimiser les opĂ©rations dans les migrations pour rĂ©duire la taille du fichier rĂ©sultant. Utilisez cette option si ce processus Ă©choue ou quâil crĂ©e des migrations incorrectes. Dans ce cas, Il serait toutefois aussi souhaitable de remplir un rapport dâanomalie pour Django car cette optimisation est censĂ©e ĂȘtre sĂ»re.
-
--noinput
,
--no-input
¶
Ăvite toute demande interactive Ă lâutilisateur.
-
--squashed-name
SQUASHED_NAME
¶
Définit le nom de la migration fusionnée. Sans cela, le nom automatique se base sur les premiÚre et derniÚre migrations, avec _squashed_
entre deux.
-
--no-header
¶
GĂ©nĂšre un fichier de migration fusionnĂ© sans lâen-tĂȘte dâhorodatage et de version Django.
startapp
¶
-
django-admin startapp name [directory]
¶
CrĂ©e une structure de rĂ©pertoires dâapplication Django avec le nom dâapplication indiquĂ©, dans le rĂ©pertoire actuel ou dans la destination indiquĂ©e.
Par défaut, le nouveau répertoire contient un fichier models.py
ainsi que dâautres fichiers modĂšles dâapplication. Si seul le nom dâapplication est indiquĂ©, le rĂ©pertoire de lâapplication sera créé dans le rĂ©pertoire de travail actuel.
Si la destination facultative est indiquĂ©e, Django utilise ce rĂ©pertoire existant plutĂŽt que dâen crĂ©er un nouveau. Vous pouvez utiliser « . » pour signifier le rĂ©pertoire de travail actuel.
Par exemple :
django-admin startapp myapp /Users/jezdez/Code/myapp
-
--template
TEMPLATE
¶
Fournit le chemin vers un rĂ©pertoire contenant un modĂšle dâapplication personnalisĂ©, un chemin vers une archive non compressĂ©e (.tar
) ou une archive compressée (.tar.gz
, .tar.bz2
, .tar.xz
, .tar.lzma
, .tgz
, .tbz2
, .txz
, .tlz
, .zip
) contenant les fichiers du modĂšle de structure dâapplication.
Par exemple, cette commande cherche un modĂšle dâapplication dans le rĂ©pertoire indiquĂ© lors de la crĂ©ation de lâapplication myapp
:
django-admin startapp --template=/Users/jezdez/Code/my_app_template myapp
Django accepte également des URL (http
, https
, ftp
) vers des archives compressĂ©es contenant les fichiers de modĂšle dâapplication, se chargeant de les tĂ©lĂ©charger et de les dĂ©compresser Ă la volĂ©e.
Par exemple, en profitant de la fonctionnalité de GitHub qui expose les dépÎts sous forme de fichiers zip, vous pouvez utilisez une URL comme :
django-admin startapp --template=https://github.com/githubuser/django-app-template/archive/main.zip myapp
-
--extension
EXTENSIONS
,
-e
EXTENSIONS
¶
Indique les extensions de fichiers dans le modĂšle dâapplication qui doivent ĂȘtre produits par le moteur de gabarit. py
par défaut.
-
--name
FILES
,
-n
FILES
¶
Indique les fichiers du modĂšle dâapplication (en plus de ceux correspondant Ă --extension
) qui doivent ĂȘtre produits par le moteur de gabarit. Par dĂ©faut, câest une liste vide.
-
--exclude
DIRECTORIES
,
-x
DIRECTORIES
¶
Indique quels rĂ©pertoires dans le modĂšle dâapplication doivent ĂȘtre exclus, en plus de .git
and __pycache__
. Si cette option nâest pas donnĂ©e, les rĂ©pertoires nommĂ©s __pycache__
ou commençant par un .
seront exclus.
Le contexte de gabarit
utilisé pour tous les fichiers concernés est :
- Toute option transmise Ă la commande
startapp
(parmi les options acceptées par la commande) app_name
â le nom dâapplication tel que transmis Ă la commandeapp_directory
â le chemin complet de lâapplication nouvellement crééecamel_case_app_name
â le nom dâapplication au format CamelCasedocs_version
â la version de la documentation :'dev'
ou'1.x'
django_version
â la version de Django, par ex.'2.0.3'
Avertissement
Lorsque les fichiers du modĂšle dâapplication sont gĂ©nĂ©rĂ©s avec le moteur de gabarit de Django (par dĂ©faut tous les fichiers *.py
), Django remplace Ă©galement toutes les variables de gabarit non ciblĂ©es. Par exemple, si lâun des fichiers Python contient une chaĂźne « docstring » expliquant une certaine fonctionnalitĂ© liĂ©e Ă la production de gabarit, cela pourrait produire un exemple incorrect.
Pour contourner ce problĂšme, vous pouvez utiliser la balise de gabarit templatetag
pour « échapper » les différentes parties de la syntaxe de gabarit.
En plus, pour permettre aux fichiers gabarits Python de contenir de la syntaxe du langage de gabarit de Django tout en empĂȘchant les systĂšmes dâempaquetage dâessayer de prĂ©compiler ces fichiers *.py
non valides syntaxiquement, les fichiers de gabarit se terminant par .py-tpl
seront renommés en .py
.
startproject
¶
-
django-admin startproject name [directory]
¶
Crée une structure de répertoires de projet Django avec le nom de projet donné, dans le répertoire actuel ou la destination indiquée.
Par défaut, le nouveau répertoire contient manage.py
est un paquet de projet (contenant settings.py
et dâautres fichiers).
Si seul le nom de projet est fourni, le répertoire de projet et le paquet de projet seront tous deux nommés <nom_projet>
et le répertoire du projet sera créé dans le répertoire de travail actuel.
Si la destination facultative est fournie, Django utilise ce répertoire existant comme répertoire de projet, et crée manage.py
ainsi que le paquet de projet Ă lâintĂ©rieur. Vous pouvez utiliser « . » pour signifier le rĂ©pertoire de travail actuel.
Par exemple :
django-admin startproject myproject /Users/jezdez/Code/myproject_repo
-
--template
TEMPLATE
¶
Indique un rĂ©pertoire, un chemin de fichier ou lâURL dâun modĂšle de projet personnalisĂ©. Consultez la documentation de startapp --template
pour des exemples dâutilisation.
-
--extension
EXTENSIONS
,
-e
EXTENSIONS
¶
Indique les extensions de fichiers dans le modĂšle de projet qui doivent ĂȘtre produits par le moteur de gabarit. py
par défaut.
-
--name
FILES
,
-n
FILES
¶
Indique les fichiers du modĂšle de projet (en plus de ceux correspondant Ă --extension
) qui doivent ĂȘtre produits par le moteur de gabarit. Par dĂ©faut, câest une liste vide.
-
--exclude
DIRECTORIES
,
-x
DIRECTORIES
¶
Indique quels rĂ©pertoires dans le modĂšle de projet doivent ĂȘtre exclus, en plus de .git
and __pycache__
. Si cette option nâest pas donnĂ©e, les rĂ©pertoires nommĂ©s __pycache__
ou commençant par un .
seront exclus.
Le contexte de gabarit
utilisé est :
- Toute option transmise Ă la commande
startproject
(parmi les options acceptées par la commande) project_name
â le nom du projet tel que transmis Ă la commandeproject_directory
â le chemin complet du projet nouvellement créésecret_key
â une clĂ© alĂ©atoire pour le rĂ©glageSECRET_KEY
docs_version
â la version de la documentation :'dev'
ou'1.x'
django_version
â la version de Django, par ex.'2.0.3'
Veuillez consultez Ă©galement lâavertissement concernant le rendu mentionnĂ© pour la commande startapp
.
test
¶
-
django-admin test [test_label [test_label ...]]
¶
Lance les tests de toutes les applications installĂ©es. Voir Les tests dans Django pour plus dâinformations.
-
--failfast
¶
Interrompt lâexĂ©cution des tests et affiche le rapport de lâĂ©chec immĂ©diatement aprĂšs lâĂ©chec dâun test.
-
--testrunner
TESTRUNNER
¶
Indique la classe de lancement de tests utilisée pour exécuter les tests. Cette valeur écrase la valeur contenue dans le réglage TEST_RUNNER
.
-
--noinput
,
--no-input
¶
Supprime toute demande interactive Ă lâutilisateur. Une demande typique concerne par exemple lâavertissement de suppression dâune base de donnĂ©es de test existante.
Options du lanceur de tests¶
La commande test
reçoit des options de la part du lanceur de tests --testrunner
indiqué. Ces options sont celles du lanceur de tests par défaut : DiscoverRunner
.
-
--keepdb
¶
PrĂ©serve la base de donnĂ©es de test entre les lancements des tests. Cela prĂ©sente lâavantage de sauter Ă la fois les actions de crĂ©ation et de destruction, ce qui peut fortement diminuer le temps de fonctionnement des tests, particuliĂšrement dans le cadre dâune grosse suite de test. Si la base de donnĂ©es de test nâexiste pas, elle sera créée au premier lancement et conservĂ©e ensuite pour chaque lancement subsĂ©quent. Pour autant que le rĂ©glage de test MIGRATE
ne soit pas False
, toute migration non appliquée sera aussi appliquée à la base de données de test avant de lancer la suite de tests.
-
--shuffle
[SEED]
¶
Rend alĂ©atoire lâordre des tests avant leur exĂ©cution. Ceci peut aider Ă dĂ©tecter des tests qui ne sont pas proprement isolĂ©s. Lâordre des tests gĂ©nĂ©rĂ© par cette option est une fonction dĂ©terministe du facteur nombre entier donnĂ©. Lorsquâaucun facteur nâest donnĂ©, celui-ci est choisi au hasard et affichĂ© dans la console. Pour rĂ©pĂ©ter un ordre de test spĂ©cifique, passez un facteur. Les ordres des tests gĂ©nĂ©rĂ©s par cette option prĂ©servent la garantie sur lâordre des tests de Django. Ils conservent aussi le groupement des tests par classe de test.
Lâordre alĂ©atoire possĂšde aussi une propriĂ©tĂ© de cohĂ©rence spĂ©ciale et bien utile lorsquâon sâattaque Ă des problĂšmes dâisolation de tests. Câest-Ă -dire que pour un facteur donnĂ© et lors de lâexĂ©cution dâun sous-ensemble de tests, le nouvel ordre (alĂ©atoire) est le mĂȘme que prĂ©cĂ©demment mais restreint au plus petit sous-ensemble. De mĂȘme, si on ajoute des tests en conservant le mĂȘme facteur, lâordre des premiers tests est toujours le mĂȘme que lâordre initial.
-
--reverse
,
-r
¶
Trie les cas de tests dans lâordre dâexĂ©cution inverse. Cela peut aider Ă dĂ©boguer des effets de bord dans les tests qui ne sont pas isolĂ©s correctement. Le groupement par classe de test est conservĂ© lors de lâutilisation de cette option. Cette option peut ĂȘtre utilisĂ©e de concert avec --shuffle
afin dâinverser lâordre correspondant Ă un facteur particulier.
-
--debug-mode
¶
Définit le réglage DEBUG
Ă True
avant dâexĂ©cuter les tests. Cela peut aider Ă investiguer les Ă©checs de tests.
-
--debug-sql
,
-d
¶
Active la journalisation SQL des tests qui échouent. Si --verbosity
vaut 2
, les requĂȘtes dans les tests qui rĂ©ussissent sont aussi affichĂ©es.
-
--parallel
[N]
¶
-
DJANGO_TEST_PROCESSES
¶
ExĂ©cute les tests en parallĂšle dans des processus sĂ©parĂ©s. Comme les processeurs modernes ont plusieurs cĆurs, cela permet de rendre les tests nettement plus rapides.
En indiquant --parallel
sans fournir de valeur ou avec la valeur auto
, exĂ©cute un processus de tests par cĆur en fonction de multiprocessing.cpu_count()
. Vous pouvez forcer le nombre de processus souhaitĂ© en indiquant un nombre Ă lâoption, par ex. --parallel=4
, ou en dĂ©finissant la variable dâenvironnement DJANGO_TEST_PROCESSES
.
Django distribue les cas de test (sous-classes de unittest.TestCase
) Ă des sous-processus. Sâil y a moins de cas de test que de processus configurĂ©s, Django rĂ©duit le nombre de processus en consĂ©quence.
Chaque processus travaille avec sa propre base de donnĂ©es. Vous devez vous assurer que les diffĂ©rents cas de test nâaccĂšdent pas aux mĂȘmes ressources. Par exemple, les cas de test qui touchent au systĂšme de fichiers devraient crĂ©er un rĂ©pertoire temporaire pour leur propre usage.
Note
Si vous avez des classes de tests qui ne peuvent pas fonctionner en parallĂšle, vous pouvez utiliser SerializeMixin
pour les exécuter de maniÚre séquentielle. Voir Exécution séquentielle des classes de tests.
Cette option nécessite le paquet externe tblib
pour afficher correctement les piles dâappels :
$ python -m pip install tblib
Cette fonctionnalitĂ© nâest pas disponible sur Windows. Elle ne fonctionne pas non plus avec les bases de donnĂ©es Oracle.
Si vous souhaitez utiliser pdb
pendant le dĂ©bogage des tests, vous devez dĂ©sactiver lâexĂ©cution en parallĂšle (--parallel=1
). Si vous ne le faites pas, vous verrez quelque chose comme bdb.BdbQuit
.
Avertissement
Lorsque la parallĂ©lisation des tests est activĂ©e et quâun test Ă©choue, il se peut que Django ne puisse pas afficher la pile dâappels de lâexception. Cela peut rendre le dĂ©bogage difficile. Si vous rencontrez ce problĂšme, exĂ©cutez le test concernĂ© sans parallĂ©lisation pour voir la pile dâappels de lâĂ©chec.
Il sâagit dâune limitation connue. Elle provient du besoin de sĂ©rialisation des objets pour pouvoir les Ă©changer entre processus. Voir What can be pickled and unpickled? pour plus de dĂ©tails.
La prise en charge de la valeur auto
a été ajoutée.
-
--tag
TAGS
¶
NâexĂ©cute que les tests marquĂ©s avec les Ă©tiquettes mentionnĂ©es. Plusieurs occurrences sont possibles et la combinaison est possible avec test --exclude-tag
.
Les tests dont le chargement échoue sont toujours considérés comme inclus.
Dans les anciennes versions, les tests dont le chargement Ă©chouait nâĂ©taient pas ciblĂ©s par tag
.
-
--exclude-tag
EXCLUDE_TAGS
¶
Exclut les tests marqués avec les étiquettes mentionnées. Plusieurs occurrences sont possibles et la combinaison est possible avec test --tag
.
-
-k
TEST_NAME_PATTERNS
¶
Lance les mĂ©thodes et classes de test correspondant aux motifs de noms de tests, sur le mĂȘme principe que unittest's -k option
. Peut ĂȘtre indiquĂ©e plusieurs fois.
-
--pdb
¶
Déclenche un débogueur pdb
Ă chaque erreur ou Ă©chec de test. Sâil est installĂ©, câest ipdb
qui est lancé à la place.
-
--buffer
,
-b
¶
Ălimine la sortie (stdout` et stderr
) pour les tests qui rĂ©ussissent, de la mĂȘme maniĂšre que lâoption --buffer de unittest
.
-
--no-faulthandler
¶
Django appelle automatiquement faulthandler.enable()
au lancement des tests, ce qui lui permet dâafficher une trace dâerreur dans le cas oĂč lâinterprĂ©teur plante. Passez --no-faulthandler
pour désactiver ce comportement.
-
--timing
¶
Ajoute les mesures temporelles des tests, y compris la mise en place de la base de donnĂ©es et le temps total dâexĂ©cution.
testserver
¶
-
django-admin testserver [fixture [fixture ...]]
¶
Lance un serveur de développement Django (comme avec runserver
) en utilisant les données des instantanés indiqués.
Par exemple, cette commande :
django-admin testserver mydata.json
âŠeffectue les opĂ©rations suivantes :
- CrĂ©ation dâune base de donnĂ©es de test, comme expliquĂ© dans La base de donnĂ©es de test.
- Remplissage de la base de donnĂ©es de test avec les donnĂ©es dâinstantanĂ©s Ă partir des noms dâinstantanĂ©s indiquĂ©s (pour plus de dĂ©tails sur les instantanĂ©s, voir la documentation de
loaddata
). - Lancement du serveur de développement de Django (comme avec
runserver
), en utilisant la base de donnĂ©es de test venant dâĂȘtre créée au lien de la base de donnĂ©es de production.
Câest utile dans plusieurs cas de figure :
- Lorsque vous écrivez des tests unitaires sur les interactions entre les vues et certaines données, il est pratique de pouvoir lancer
testserver
afin dâinteragir manuellement avec ces vues dans un navigateur web. - Admettons que vous dĂ©veloppez une application Django et que vous disposez dâune copie « en bon Ă©tat » de la base de donnĂ©es avec laquelle vous souhaiteriez interagir. Vous pouvez exporter cette base de donnĂ©es dans un instantanĂ© (par la commande
dumpdata
détaillée ci-dessus), puis utilisertestserver
pour lancer lâapplication web avec ces donnĂ©es. Avec ce systĂšme, vous ĂȘtes libre de manipuler les donnĂ©es comme bon vous semble, sachant que toutes ces modifications ne se font que dans une base de donnĂ©es de test.
Notez que ce serveur ne détecte pas automatiquement les modifications de code source Python (comme le fait runserver
). Il prend en compte par contre les modifications de gabarits.
-
--addrport
ADDRPORT
¶
Indique un port ou une adresse IP et un port différent de la valeur par défaut 127.0.0.1:8000
. Cette valeur respecte exactement le mĂȘme format et joue exactement le mĂȘme rĂŽle que le paramĂštre donnĂ© Ă la commande runserver
.
Exemples :
Pour lancer le serveur de test sur le port 7000 avec les données fixture1
et fixture2
:
django-admin testserver --addrport 7000 fixture1 fixture2
django-admin testserver fixture1 fixture2 --addrport 7000
(Les commandes ci-dessus sont Ă©quivalentes. Nous les avons Ă©crites les deux pour montrer que le placement des options avant ou aprĂšs les paramĂštres dâinstantanĂ©s nâa pas dâimportance.)
Pour lancer un serveur sur 1.2.3.4:7000 avec un instantané test
:
django-admin testserver --addrport 1.2.3.4:7000 test
-
--noinput
,
--no-input
¶
Supprime toute demande interactive Ă lâutilisateur. Une demande typique concerne par exemple lâavertissement de suppression dâune base de donnĂ©es de test existante.
Commandes fournies par les applications¶
Certaines commandes ne sont disponibles que lorsque lâapplication django.contrib
qui les implémente a été activée
. Cette section les présente de maniÚre groupée par application.
django.contrib.auth
¶
changepassword
¶
-
django-admin changepassword [<username>]
¶
Cette commande nâest disponible que si le systĂšme dâauthentification de Django (django.contrib.auth
) est installé.
Permet de changer le mot de passe dâun utilisateur. Vous ĂȘtes invitĂ© Ă saisir deux fois le mot de passe de lâutilisateur indiquĂ©. Si les deux saisies correspondent, le nouveau mot de passe sera immĂ©diatement dĂ©fini. Si vous nâindiquez pas de nom dâutilisateur, la commande essaie de changer le mot de passe de lâutilisateur dont le nom correspond Ă lâutilisateur systĂšme en cours.
-
--database
DATABASE
¶
Indique dans quelle base de donnĂ©es lâutilisateur doit ĂȘtre recherchĂ©. Par dĂ©faut, il sâagit de la base de donnĂ©es default
.
Exemple dâutilisation :
django-admin changepassword ringo
createsuperuser
¶
-
django-admin createsuperuser
¶
-
DJANGO_SUPERUSER_PASSWORD
¶
Cette commande nâest disponible que si le systĂšme dâauthentification de Django (django.contrib.auth
) est installé.
CrĂ©e un compte super-utilisateur (un utilisateur ayant toutes les permissions). Câest utile si vous avez besoin de crĂ©er un compte de super-utilisateur ou que vous avez besoin de gĂ©nĂ©rer des comptes de super-utilisateurs de maniĂšre programmable pour votre site.
Lorsquâelle est exĂ©cutĂ©e de maniĂšre interactive, cette commande demande un mot de passe pour le nouveau compte super-utilisateur. En mode non interactif, vous pouvez indiquer un mot de passe en dĂ©finissant la variable dâenvironnement DJANGO_SUPERUSER_PASSWORD
. Sinon, aucun mot de passe nâest dĂ©fini ; le compte super-utilisateur ne pourra pas se connecter tant quâun mot de passe nâaura pas Ă©tĂ© manuellement dĂ©fini pour ce compte.
En mode non interactif, les champs USERNAME_FIELD
et obligatoires (énumérés dans REQUIRED_FIELDS
) se replient sur les valeurs de variables dâenvironnement DJANGO_SUPERUSER_<nom_champ_en_majuscules>
quand elles ne figurent pas dans les paramĂštres de ligne de commande. Par exemple, pour fournir une valeur pour le champ email
, vous pouvez dĂ©finir une variable dâenvironnement DJANGO_SUPERUSER_EMAIL
.
-
--noinput
,
--no-input
¶
Supprime toute demande Ă lâutilisateur. SI une demande supprimĂ©e ne peut pas ĂȘtre rĂ©solue automatiquement, la commande se termine avec le code dâerreur 1.
-
--username
USERNAME
¶
-
--email
EMAIL
¶
Le nom dâutilisateur et lâadresse Ă©lectronique du nouveau compte peuvent ĂȘtre fournis par le moyen des paramĂštres --username
et --email
en ligne de commande. Si ces paramÚtres ne sont pas renseignés, createsuperuser
demande de les saisir en mode interactif.
-
--database
DATABASE
¶
Indique la base de donnĂ©es dans laquelle lâobjet super-utilisateur sera enregistrĂ©.
Vous pouvez crĂ©er une sous-classe de la commande dâadministration et surcharger get_input_data()
si vous souhaitez personnaliser la saisie de donnĂ©es et la validation. Examinez le code source pour des dĂ©tails sur lâimplĂ©mentation existante et les paramĂštres de la mĂ©thode. Par exemple, cela pourrait ĂȘtre utile si vous avez une clĂ© ForeignKey
dans REQUIRED_FIELDS
et que vous voulez permettre la crĂ©ation dâune instance au lieu de devoir saisir la clĂ© primaire dâune instance existante.
django.contrib.contenttypes
¶
remove_stale_contenttypes
¶
-
django-admin remove_stale_contenttypes
¶
Cette commande nâest disponible que si lâapplication « contenttypes » (django.contrib.contenttypes
) est installée.
Supprime les types de contenu obsolÚtes (provenant de modÚles supprimés) de la base de données. Tout objet dépendant des types de contenu supprimés sera aussi détruit. Une liste des objets supprimés sera affichée avant de confirmer que la suppression peut se poursuivre.
-
--database
DATABASE
¶
Indique la base de données à utiliser. La valeur par défaut est default
.
-
--include-stale-apps
¶
Supprime les types de contenus périmés, y compris ceux des applications précédemment installées qui ont été supprimées de INSTALLED_APPS
. La valeur est False
par défaut.
django.contrib.gis
¶
ogrinspect
¶
Cette commande nâest disponible que si GeoDjango (django.contrib.gis
) est installé.
Veuillez vous référer à sa description
dans la documentation de GeoDjango.
django.contrib.sessions
¶
django.contrib.sitemaps
¶
ping_google
¶
Cette commande nâest disponible que si lâinfrastructure « sitemap » (django.contrib.sitemaps
) est installée.
Veuillez vous référer à sa description
dans la documentation de Sitemaps.
django.contrib.staticfiles
¶
collectstatic
¶
Cette commande nâest disponible que si lâapplication des fichiers statiques (django.contrib.staticfiles
) est installée.
Veuillez vous référer à sa description
dans la documentation des fichiers statiques.
findstatic
¶
Cette commande nâest disponible que si lâapplication des fichiers statiques (django.contrib.staticfiles
) est installée.
Veuillez vous référer à sa description
dans la documentation des fichiers statiques.
Options par défaut¶
MĂȘme si certaines commandes dĂ©finissent leurs propres options personnalisĂ©es, chaque commande accepte les options suivantes par dĂ©faut :
-
--pythonpath
PYTHONPATH
¶
Ajoute le chemin de systĂšme de fichier indiquĂ© au chemin de recherche dâimportation de Python. Quand cette option nâest pas renseignĂ©e, django-admin
utilise la variable dâenvironnement PYTHONPATH
.
Cette option est inutile avec manage.py
, parce que celui-ci sâoccupe de dĂ©finir le chemin Python Ă votre place.
Exemple dâutilisation :
django-admin migrate --pythonpath='/home/djangoprojects/myproject'
-
--settings
SETTINGS
¶
Définit le module de réglage (settings
) Ă utiliser. Ce module doit ĂȘtre spĂ©cifiĂ© dans la syntaxe des paquets Python, par exemple monsite.settings
. Quand cette option nâest pas renseignĂ©e, django-admin
utilise la variable dâenvironnement DJANGO_SETTINGS_MODULE
.
Cette option nâest pas obligatoire avec manage.py
, parce que celui-ci utilise par défaut le module settings.py
du projet courant.
Exemple dâutilisation :
django-admin migrate --settings=mysite.settings
-
--traceback
¶
Affiche une trace de pile dâappels complĂšte lorsquâune exception CommandError
apparaßt. Par défaut, django-admin
affiche un message dâerreur chaque fois quâune erreur CommandError
se produit, et une trace de pile dâappels complĂšte pour toute autre exception.
Cette option est ignorée par runserver
.
Exemple dâutilisation :
django-admin migrate --traceback
-
--verbosity
{0,1,2,3}
,
-v
{0,1,2,3}
¶
Indique la quantitĂ© dâinformations indicatives et de dĂ©bogage quâune commande doit afficher dans la console.
0
signifie aucun affichage.1
signifie un affichage normal (par défaut).2
signifie un affichage bavard.3
signifie un affichage trĂšs bavard.
Cette option est ignorée par runserver
.
Exemple dâutilisation :
django-admin migrate --verbosity 2
-
--no-color
¶
DĂ©sactive lâaffichage colorĂ© du rĂ©sultat des commandes. Certaines commandes mettent en forme leur rĂ©sultat en couleurs. Par exemple, les erreurs affichĂ©es dans la console sont en rouge et la syntaxe des instructions SQL est colorĂ©e.
Exemple dâutilisation :
django-admin runserver --no-color
-
--force-color
¶
Force la coloration du rĂ©sultat de la commande dans le cas oĂč elle aurait Ă©tĂ© dĂ©sactivĂ©e comme discutĂ© dans Syntaxe colorĂ©e. Par exemple, il peut ĂȘtre souhaitĂ© de rediriger le rĂ©sultat colorĂ© vers une autre commande.
-
--skip-checks
¶
Omet les vĂ©rifications systĂšme avant de lancer la commande. Cette option nâest disponible que si lâattribut de commande requires_system_checks
nâest pas une liste ou un tuple vide.
Exemple dâutilisation :
django-admin migrate --skip-checks
Options complémentaires¶
Syntaxe colorée¶
-
DJANGO_COLORS
¶
Les commandes django-admin
/ manage.py
prĂ©sentent leur affichage avec un code de couleur visuellement attractif si le terminal prend en charge lâaffichage colorĂ© de type ANSI. Les codes de couleur ne sont pas utilisĂ©s dans le cas oĂč vous redirigez le rĂ©sultat dâune commande vers un autre programme, sauf si lâoption --force-color
est indiquée.
Prise en charge avec Windows¶
Avec Windows 10, lâapplication Windows Terminal, VS Code et PowerShell (lorsque le traitement de terminal virtuel est activĂ©) autorisent les contenus colorĂ©s et sont pris en charge par dĂ©faut.
Avec Windows, lâancienne console native cmd.exe
ne prend pas en charge les sĂ©quences dâĂ©chappement ANSI, ce qui fait que le rĂ©sultat nâest pas colorĂ©. Dans ce cas, une des deux bibliothĂšques tierces suivantes est nĂ©cessaire :
Installez _colorama, un paquet Python qui traduit les codes couleur ANSI en appels dâAPI Windows. Les commandes Django vont dĂ©tecter sa prĂ©sence et lâutiliser pour produire des sorties colorĂ©es comme pour les plates-formes de type Unix.
colorama
peut ĂȘtre installĂ© avec pip:...\> py -m pip install colorama
Installez ANSICON, un outil externe qui permet Ă
cmd.exe
de gĂ©rer les codes couleur ANSI. Les commandes Django vont dĂ©tecter sa prĂ©sence et lâutiliser pour produire des sorties colorĂ©es comme pour les plates-formes de type Unix.
Dâautre environnements de terminaux sous Windows qui prennent en charge la coloration mais qui ne sont pas dĂ©tectĂ©s automatiquement comme pris en charge par Django peuvent simuler lâinstallation dâANSICON
en dĂ©finissant la variable dâenvironnement appropriĂ©e, ANSICON="on"
.
Couleurs personnalisées¶
Les couleurs utilisĂ©es pour la syntaxe colorĂ©e peuvent ĂȘtre personnalisĂ©es. Django contient trois palettes de couleurs :
dark
(foncĂ©), adaptĂ©e aux terminaux affichant du texte blanc sur fond noir. Il sâagit de la palette par dĂ©faut.light
(clair), adaptée aux terminaux affichant du texte noir sur fond blanc.nocolor
(sans couleur), qui désactive la syntaxe colorée.
Vous pouvez choisir la palette en dĂ©finissant la variable dâenvironnement DJANGO_COLORS
pour quâelle contienne la palette dĂ©sirĂ©e. Par exemple, pour dĂ©finir la palette light
dans un shell Bash de type Unix, voici ce quâil faut saisir Ă lâinvite de commande :
export DJANGO_COLORS="light"
Il est aussi possible de personnaliser les couleurs utilisées. Django définit un certain nombre de rÎles utilisés par les couleurs :
error
- Une erreur importante.notice
- Une petite erreur.success
- Un succĂšs.warning
- Un avertissement.sql_field
- Le nom dâun champ de modĂšle en SQL.sql_coltype
- Le type dâun champ de modĂšle en SQL.sql_keyword
- Un mot-clé SQL.sql_table
- Le nom dâun modĂšle en SQL.http_info
- Une réponse serveur HTTP de type information (1XX)http_success
- Une réponse serveur HTTP de type succÚs (2XX)http_not_modified
- Une réponse serveur HTTP de type non modifié (304)http_redirect
- Une réponse serveur HTTP de type redirection (3XX autre que 304).http_not_found
- Une réponse serveur HTTP non trouvé (404).http_bad_request
- Une rĂ©ponse serveur HTTP de type mauvaise requĂȘte (4XX autre que 404).http_server_error
- Une réponse serveur HTTP de type erreur (5XX).migrate_heading
- Un en-tĂȘte dans une commande dâadministration de migration.migrate_label
- Un nom de migration.
Chacun de ces rĂŽles peut recevoir une couleur spĂ©cifique de premier plan ou dâarriĂšre-plan, dans la liste suivante :
black
(noir)red
(rouge)green
(vert)yellow
(jaune)blue
(bleu)magenta
cyan
white
(blanc)
Chacune de ces couleurs peut ensuite ĂȘtre modifiĂ©e en utilisant les options dâaffichage suivantes :
bold
(gras)underscore
(souligné)blink
(clignotant)reverse
conceal
(masqué)
Une spĂ©cification de couleur respecte lâun des motifs suivants :
role=fg
role=fg/bg
role=fg,option,option
role=fg/bg,option,option
oĂč role
est le nom dâun rĂŽle de couleur valide, fg
est la couleur de premier plan, bg
est la couleur dâarriĂšre-plan et chaque option
est lâune des options de modification de couleur. Plusieurs indications de couleurs sont ensuite sĂ©parĂ©es par des points-virgules. Par exemple :
export DJANGO_COLORS="error=yellow/blue,blink;notice=magenta"
indique que les erreurs doivent ĂȘtre affichĂ©es par un jaune clignotant sur du bleu et que les informations sont affichĂ©es en magenta. Tous les autres rĂŽles de couleur sont sans couleur spĂ©cifique.
Les couleurs peuvent aussi ĂȘtre spĂ©cifiĂ©es en Ă©tendant une palette de base. Si vous indiquez un nom de palette dans une spĂ©cification de couleur, toutes les couleurs contenues dans cette palette seront chargĂ©es. Ainsi :
export DJANGO_COLORS="light;error=yellow/blue,blink;notice=magenta"
indique que toutes les couleurs de la palette claire doivent ĂȘtre utilisĂ©es, Ă lâexception des couleurs pour les erreurs et les informations qui sont surchargĂ©es comme indiquĂ©.
Complétion Bash¶
Si vous utilisez le shell Bash, il est conseillĂ© dâinstaller le script Django de complĂ©tion Bash qui se trouve dans extras/django_bash_completion
de la distribution source de Django. Il active la complétion par tabulation des commandes django-admin
et manage.py
afin de pouvoir, par exempleâŠ
- Saisissez
django-admin
. - Appuyer sur [TAB] pour voir toutes les options disponibles.
- Saisir
sql
, puis [TAB], pour voir toutes les commandes disponibles dont le nom commence parsql
.
Voir Ăcriture de commandes django-admin personnalisĂ©es pour savoir comment ajouter des actions personnalisĂ©es.
Black formatting¶
The Python files created by startproject
, startapp
,
optimizemigration
, makemigrations
, and
squashmigrations
are formatted using the black
command if it is
present on your PATH
.
If you have black
globally installed, but do not wish it used for the
current project, you can set the PATH
explicitly:
PATH=path/to/venv/bin django-admin makemigrations
For commands using stdout
you can pipe the output to black
if needed:
django-admin inspectdb | black -
Lancement de commandes de gestion à partir du code¶
-
django.core.management.
call_command
(name, *args, **options)¶
Pour appeler une commande de gestion Ă partir du code, utilisez call_command
.
name
- le nom de la commande Ă appeler ou un objet commande. La transmission du nom est prĂ©fĂ©rĂ©e, sauf si lâobjet est obligatoire pour les tests.
*args
- une liste de paramĂštres acceptĂ©s par la commande. Les paramĂštres sont transmis Ă lâanalyseur de paramĂštres, ce qui signifie quâon peut utiliser le mĂȘme style que dans la ligne de commande. Par exemple,
call_command('flush', '--verbosity=0')
. **options
- options nommĂ©es acceptĂ©es dans la ligne de commande. Les options sont transmises Ă la commande sans faire appel Ă lâanalyseur de paramĂštres, ce qui signifie quâil est nĂ©cessaire de passer le bon type. Par exemple,
call_command('flush', verbosity=0)
(zĂ©ro doit ĂȘtre un entier et non pas une chaĂźne).
Exemples :
from django.core import management
from django.core.management.commands import loaddata
management.call_command('flush', verbosity=0, interactive=False)
management.call_command('loaddata', 'test_data', verbosity=0)
management.call_command(loaddata.Command(), 'test_data', verbosity=0)
Notez que les options de commandes qui nâacceptent pas de paramĂštre sont transmises sous forme de mots-clĂ©s avec True
ou False
, comme vous pouvez le voir avec lâoption interactive
ci-dessus.
Les paramĂštres nommĂ©s peuvent ĂȘtre transmis en utilisant lâune des syntaxes suivantes :
# Similar to the command line
management.call_command('dumpdata', '--natural-foreign')
# Named argument similar to the command line minus the initial dashes and
# with internal dashes replaced by underscores
management.call_command('dumpdata', natural_foreign=True)
# `use_natural_foreign_keys` is the option destination variable
management.call_command('dumpdata', use_natural_foreign_keys=True)
Certaines options de commande sont nommées différemment quand les commandes sont appelées avec call_command()
au lieu de django-admin
ou manage.py
. Par exemple, django-admin createsuperuser --no-input
se traduit par call_command('createsuperuser', interactive=False)
. Pour savoir quel nom de paramÚtre nommé utiliser pour call_command()
, consultez le code source de la commande et cherchez le paramĂštre dest
passé à parser.add_argument()
.
Les options de commandes acceptant plusieurs options sont transmises sous forme de liste :
management.call_command('dumpdata', exclude=['contenttypes', 'auth'])
La valeur renvoyée par la fonction call_command()
est la mĂȘme que celle renvoyĂ©e par la mĂ©thode handle()
de la commande.
Redirection en sortie¶
Notez que vous pouvez rediriger la sortie standard et les flux dâerreur car toutes les commandes acceptent les options stdout
et stderr
, Par exemple, vous pouvez écrire :
with open('/path/to/command_output', 'w') as f:
management.call_command('dumpdata', stdout=f)