| 1 |
============================= |
|---|
| 2 |
django-admin.py et manage.py |
|---|
| 3 |
============================= |
|---|
| 4 |
|
|---|
| 5 |
``django-admin.py`` est l'utilitaire en ligne de commande de Django pour les |
|---|
| 6 |
tâches administratives. Ce document précise toutes ses possibilités. |
|---|
| 7 |
|
|---|
| 8 |
Un autre utilitaire, ``manage.py`` est de plus créé automatiquement dans chaque |
|---|
| 9 |
projet Django. |
|---|
| 10 |
|
|---|
| 11 |
``manage.py`` encapsule ``django-admin.py`` et fait deux choses pour vous |
|---|
| 12 |
avant de passer la main à ``django-admin.py``: |
|---|
| 13 |
|
|---|
| 14 |
* Il ajoute le chemin de votre projet à ``sys.path``. |
|---|
| 15 |
|
|---|
| 16 |
* Il renseigne la variable d'environnement ``DJANGO_SETTINGS_MODULE``, qui pointe |
|---|
| 17 |
vers le fichier ``settings.py`` de votre projet. |
|---|
| 18 |
|
|---|
| 19 |
Le script ``django-admin.py`` devrait se trouver dans le chemin de recherche de votre |
|---|
| 20 |
systÚme si vous avez installé Django avec l'utilitaire ``setup.py``. S'il n'y |
|---|
| 21 |
est pas, vous pouvez le trouver dans ``site-packages/django/bin`` dans votre |
|---|
| 22 |
installation Python. Vous devriez peut-être le lier symboliquement dans un |
|---|
| 23 |
emplacement connu de votre chemin de recherche, comme par exemple |
|---|
| 24 |
``/usr/local/bin``. |
|---|
| 25 |
|
|---|
| 26 |
Windows ne possÚde pas de fonctionnalité de lien symbolique. Si vous utilisez |
|---|
| 27 |
Windows, vous pouvez copier ``django-admin.py`` quelque part dans votre chemin de |
|---|
| 28 |
recherche, ou éditer le réglage ``PATH`` (sous ``Panneau de |
|---|
| 29 |
configuration - SystÚme - Avancé - Environnement...``) pour qu'il pointe |
|---|
| 30 |
également vers l'endroit où est installé ``django-admin.py``. |
|---|
| 31 |
|
|---|
| 32 |
En général, quand on travaille sur un seul projet Django, il est plus facile d'utiliser |
|---|
| 33 |
``manage.py``. Utilisez ``django-admin.py`` avec ``DJANGO_SETTINGS_MODULE`` ou |
|---|
| 34 |
l'option de ligne de commande ``--settings`` si vous avez besoin de passer |
|---|
| 35 |
rapidement d'un fichier de réglages Django à un autre. |
|---|
| 36 |
|
|---|
| 37 |
Utilisation |
|---|
| 38 |
=========== |
|---|
| 39 |
|
|---|
| 40 |
``django-admin.py <subcommand> [options]`` |
|---|
| 41 |
|
|---|
| 42 |
``manage.py <subcommand> [options]`` |
|---|
| 43 |
|
|---|
| 44 |
``subcommand`` doit être une des sous-commandes décrites dans ce document. |
|---|
| 45 |
``options``, qui est facultatif, doit être zéro ou plus des options |
|---|
| 46 |
décrites dans ce document. |
|---|
| 47 |
|
|---|
| 48 |
Obtenir de l'aide à l'exécution |
|---|
| 49 |
------------------------------- |
|---|
| 50 |
|
|---|
| 51 |
Dans Django 0.96, lancez ``django-admin.py --help`` pour afficher un message |
|---|
| 52 |
d'aide qui inclut une liste résumée de toutes les sous-commandes et options |
|---|
| 53 |
disponibles. |
|---|
| 54 |
|
|---|
| 55 |
Dans la version de développement de Django, lancez ``django-admin.py help`` |
|---|
| 56 |
pour afficher une liste de toutes les sous-commandes disponibles. Lancez |
|---|
| 57 |
``django-admin.py help <subcommand>`` pour afficher une description de la |
|---|
| 58 |
sous-commande donnée et une liste de ses options. |
|---|
| 59 |
|
|---|
| 60 |
Noms des applications |
|---|
| 61 |
--------------------- |
|---|
| 62 |
|
|---|
| 63 |
Beaucoup de sous-commandes prennent une liste de ``noms d'applications``. Un |
|---|
| 64 |
"nom d'application" est le nom de base du paquet contenant vos modÚles. Par example, si |
|---|
| 65 |
votre ``INSTALLED_APPS`` contient la chaîne ``mysite.blog``, le nom de l'application est |
|---|
| 66 |
``blog``. |
|---|
| 67 |
|
|---|
| 68 |
Déterminer le numéro de version |
|---|
| 69 |
------------------------------- |
|---|
| 70 |
|
|---|
| 71 |
Exécutez ``django-admin.py --version`` pour affichier le nom de la version de |
|---|
| 72 |
Django courante. |
|---|
| 73 |
|
|---|
| 74 |
Exemples de retours:: |
|---|
| 75 |
|
|---|
| 76 |
0.95 |
|---|
| 77 |
0.96 |
|---|
| 78 |
0.97-pre-SVN-6069 |
|---|
| 79 |
|
|---|
| 80 |
Sous-commandes disponibles |
|---|
| 81 |
========================== |
|---|
| 82 |
|
|---|
| 83 |
cleanup |
|---|
| 84 |
------- |
|---|
| 85 |
|
|---|
| 86 |
**Nouveau dans la version de développement de Django** |
|---|
| 87 |
|
|---|
| 88 |
Peut être utilisé comme un job cron ou directement pour nettoyer les données |
|---|
| 89 |
anciennes de la base de données (seulement les sessions expirées pour le moment). |
|---|
| 90 |
|
|---|
| 91 |
compilemessages |
|---|
| 92 |
--------------- |
|---|
| 93 |
|
|---|
| 94 |
**Nouveau dans la version de développement de Django** |
|---|
| 95 |
|
|---|
| 96 |
Compile les fichiers .po créés avec ``makemessages`` en fichiers .mo qui seront |
|---|
| 97 |
utilisés avec le support gettext inclus. Voir la `documentation i18n`_ pour plus |
|---|
| 98 |
d'informations. |
|---|
| 99 |
|
|---|
| 100 |
.. _documentation i18n: ../i18n/ |
|---|
| 101 |
|
|---|
| 102 |
--locale |
|---|
| 103 |
~~~~~~~~ |
|---|
| 104 |
|
|---|
| 105 |
Utilisez l'option ``--locale`` ou ``-l`` pour spécifier la locale à compiler. Si |
|---|
| 106 |
cette valeur n'est pas précisée, toutes les locales sont compilées. |
|---|
| 107 |
|
|---|
| 108 |
Exemple:: |
|---|
| 109 |
|
|---|
| 110 |
django-admin.py compilemessages --locale=br_PT |
|---|
| 111 |
|
|---|
| 112 |
|
|---|
| 113 |
createcachetable <nomtable> |
|---|
| 114 |
--------------------------- |
|---|
| 115 |
|
|---|
| 116 |
Crée une table cache nommée ``nomtable`` utilisée par le backend de la base de |
|---|
| 117 |
données. Voir la `documentation du cache`_ pour plus d'informations. |
|---|
| 118 |
|
|---|
| 119 |
.. _documentation du cache: ../cache/ |
|---|
| 120 |
|
|---|
| 121 |
createsuperuser |
|---|
| 122 |
--------------- |
|---|
| 123 |
|
|---|
| 124 |
**Nouveau dans la version de développement de Django** |
|---|
| 125 |
|
|---|
| 126 |
Crée un compte de superutilisateur (un utilisateur qui possÚde toutes les |
|---|
| 127 |
permissions). C'est utile si vous devez créer un compte de superutilisateur |
|---|
| 128 |
d'origine mais que vous ne l'avez pas fait pendant ``syncdb``, ou si vous devez |
|---|
| 129 |
générer des comptes de superutilisateurs pour vos sites par programme. |
|---|
| 130 |
|
|---|
| 131 |
Quand elle est utilisée de façon interactive, cette commande demandera un mot de |
|---|
| 132 |
passe pour le nouveau compte superutilisateur. Quand elle est utilisée de façon |
|---|
| 133 |
non interactive, aucun mot de passe ne sera créé, et le superutilisateur ne |
|---|
| 134 |
pourra pas se connecter tant qu'un mot de passe n'aura pas été créé pour son |
|---|
| 135 |
compte. |
|---|
| 136 |
|
|---|
| 137 |
Le nom d'utilisateur et l'adresse email pour le nouveau compte peuvent être |
|---|
| 138 |
précisés en utilisant les arguments ``--username`` et ``--email`` en ligne de |
|---|
| 139 |
commande. Si l'un quelconque des deux n'est pas fourni, ``createsuperuser`` le |
|---|
| 140 |
demandera quand il est utilisé de façon interactive. |
|---|
| 141 |
|
|---|
| 142 |
Cette commande n'est disponible que si le `systÚme d'authentification`_ de |
|---|
| 143 |
Django (``django.contrib.auth``) est installé. |
|---|
| 144 |
|
|---|
| 145 |
.. _systÚme d'authentification: ../authentication/ |
|---|
| 146 |
|
|---|
| 147 |
dbshell |
|---|
| 148 |
------- |
|---|
| 149 |
|
|---|
| 150 |
Lance le client en ligne de commande pour le moteur de base de données spécifié |
|---|
| 151 |
dans votre réglage ``DATABASE_ENGINE``, avec les paramÚtres de connexion |
|---|
| 152 |
spécifiés dans vos réglages ``DATABASE_USER``, ``DATABASE_PASSWORD``, etc. |
|---|
| 153 |
|
|---|
| 154 |
* Pour PostgreSQL, lance le client en ligne de commande ``psql``. |
|---|
| 155 |
* Pour MySQL, lance le client en ligne de commande ``mysql``. |
|---|
| 156 |
* Pour SQLite, lance le client en ligne de commande ``sqlite3``. |
|---|
| 157 |
|
|---|
| 158 |
Cette commande suppose que les programmes sont sur votre ``PATH``, de telle |
|---|
| 159 |
façon qu'un simple appel au nom du programme (``psql``, ``mysql``, ``sqlite3``) |
|---|
| 160 |
le trouvera à son emplacement exact. Il n'y a aucune façon de spécifier |
|---|
| 161 |
l'emplacement du programme manuellement. |
|---|
| 162 |
|
|---|
| 163 |
diffsettings |
|---|
| 164 |
------------ |
|---|
| 165 |
|
|---|
| 166 |
Affiche les différences entre le fichier de réglages courants et les réglages |
|---|
| 167 |
par défaut de Django. |
|---|
| 168 |
|
|---|
| 169 |
Les réglages qui n'apparaissent pas par défault sont suivis de ``"###"``. Par |
|---|
| 170 |
exemple, les réglages par défaut ne précisent pas ``ROOT_URLCONF``, donc cette |
|---|
| 171 |
variable est suivie de ``"###"`` dans la sortie de ``diffsettings``. |
|---|
| 172 |
|
|---|
| 173 |
Les réglages par défaut de Django sont dans ``django/conf/global_settings.py``, |
|---|
| 174 |
au cas où vous auriez la curiosité de voir la liste complÚte. |
|---|
| 175 |
|
|---|
| 176 |
dumpdata <application application ...> |
|---|
| 177 |
-------------------------------------- |
|---|
| 178 |
|
|---|
| 179 |
Envoie vers la sortie standard toutes les données des bases de données associées |
|---|
| 180 |
aux applications passées en paramÚtre. |
|---|
| 181 |
|
|---|
| 182 |
Si aucun nom d'application n'est passé en paramÚtre, toutes les applications |
|---|
| 183 |
installées seront utilisées. |
|---|
| 184 |
|
|---|
| 185 |
La sortie de ``dumpdata`` peut être utilisée comme flux d'entrée pour |
|---|
| 186 |
``loaddata``. |
|---|
| 187 |
|
|---|
| 188 |
Notez que ``dumpdata`` utilise le manager par défaut du modÚle pour sélectionner |
|---|
| 189 |
les enregistrements à envoyer en sortie. Si vous utilisez un `manager |
|---|
| 190 |
spécifique`_ comme manager par défaut et qu'il filtre certains enregistrements, |
|---|
| 191 |
les objets ne seront pas tous envoyés en sortie. |
|---|
| 192 |
|
|---|
| 193 |
.. _manager spécifique: ../model-api/#custom-managers |
|---|
| 194 |
|
|---|
| 195 |
--exclude |
|---|
| 196 |
~~~~~~~~~ |
|---|
| 197 |
|
|---|
| 198 |
**Nouveau dans la version de développement de Django** |
|---|
| 199 |
|
|---|
| 200 |
Exclure une application particuliÚre de celles dont les données seront envoyées |
|---|
| 201 |
en sortie. Par exemple, pour exclure spécifiquement les données de l'application |
|---|
| 202 |
`auth`, vous feriez : :: |
|---|
| 203 |
|
|---|
| 204 |
django=admin.py dumpdata --exclude=auth |
|---|
| 205 |
|
|---|
| 206 |
Si vous voulez exclure les données de plusieurs applications, utilisez plusieurs |
|---|
| 207 |
directives ``exclude`` : :: |
|---|
| 208 |
|
|---|
| 209 |
django=admin.py dumpdata --exclude=auth --exclude=contenttype |
|---|
| 210 |
|
|---|
| 211 |
--format |
|---|
| 212 |
~~~~~~~~ |
|---|
| 213 |
|
|---|
| 214 |
Par défaut, ``dumpdata`` formatera sa sortie en JSON, mais vous pouvez utiliser |
|---|
| 215 |
l'option ``--format`` pour spécifier un autre format. Les formats supportés |
|---|
| 216 |
actuellement sont listés dans `Formats de sérialisation`_. |
|---|
| 217 |
|
|---|
| 218 |
Exemple:: |
|---|
| 219 |
|
|---|
| 220 |
django-admin.py dumpdata --format=xml |
|---|
| 221 |
|
|---|
| 222 |
.. _Formats de sérialisation: ../serialization/#serialization-formats |
|---|
| 223 |
|
|---|
| 224 |
--indent |
|---|
| 225 |
~~~~~~~~ |
|---|
| 226 |
|
|---|
| 227 |
Par défaut, ``dumpdata`` enverra toutes les données en une seule ligne. Ce n'est |
|---|
| 228 |
pas facile à lire pour les êtres humains, donc vous pouvez utiliser l'option |
|---|
| 229 |
``--indent`` pour afficher la sortie avec le nombre d'espaces d'indentation |
|---|
| 230 |
précisés. |
|---|
| 231 |
|
|---|
| 232 |
Exemple:: |
|---|
| 233 |
|
|---|
| 234 |
django-admin.py dumpdata --indent=4 |
|---|
| 235 |
|
|---|
| 236 |
flush |
|---|
| 237 |
----- |
|---|
| 238 |
|
|---|
| 239 |
Remet la base de donnée dans l'état où elle se trouvait juste avant que syncdb |
|---|
| 240 |
ne soit exécuté. Cela signifie que toutes les données seront supprimées de la |
|---|
| 241 |
base, tous les scripts de post-synchronisation seront réexécutés, et le jeu de |
|---|
| 242 |
données ``initial_data`` sera réinstallé. |
|---|
| 243 |
|
|---|
| 244 |
Le comportement de cette commande a changé dans la version de développement de |
|---|
| 245 |
Django. Auparavant, la commande vidait *toutes* les tables de la base de |
|---|
| 246 |
données, y compris celles dont Django n'avait pas connaissance (comme les tables |
|---|
| 247 |
qui n'étaient associées à aucun modÚle et/ou n'étaient pas dans |
|---|
| 248 |
``INSTALLED_APPS``). Maintenant, la commande ne vide que les tables qui sont |
|---|
| 249 |
représentées par des modÚles Django et sont activées dans ``INSTALLED_APPS``. |
|---|
| 250 |
|
|---|
| 251 |
--noinput |
|---|
| 252 |
~~~~~~~~~ |
|---|
| 253 |
|
|---|
| 254 |
Utilisez l'option ``--noinput`` pour supprimer toutes les demandes à |
|---|
| 255 |
l'utilisateur, comme les messages de confirmation du genre "Ãtes vous certain |
|---|
| 256 |
?". C'est utile si ``django-admin.py`` est exécuté par un script sans |
|---|
| 257 |
intervention humaine. |
|---|
| 258 |
|
|---|
| 259 |
--verbosity |
|---|
| 260 |
~~~~~~~~~~~ |
|---|
| 261 |
|
|---|
| 262 |
Utilisez ``--verbosity`` pour augmenter la quantité d'information de |
|---|
| 263 |
notification et de déboguage que ``django-admin.py`` affichera sur la console. |
|---|
| 264 |
|
|---|
| 265 |
* ``0`` ne donnera aucun affichage. |
|---|
| 266 |
* ``1`` affichage normal (valeur par défaut). |
|---|
| 267 |
* ``2`` affichage bavard. |
|---|
| 268 |
|
|---|
| 269 |
Exemple:: |
|---|
| 270 |
|
|---|
| 271 |
django-admin.py flush --verbosity=2 |
|---|
| 272 |
|
|---|
| 273 |
inspectdb |
|---|
| 274 |
--------- |
|---|
| 275 |
|
|---|
| 276 |
Inspecte les tables de la base de données pointées par la variable |
|---|
| 277 |
``DATABASE_NAME`` et envoie un module de modÚles Django (un fichier |
|---|
| 278 |
``models.py``) sur la sortie standard. |
|---|
| 279 |
|
|---|
| 280 |
Utilisez cette commande si vous avez une base de données existante dont vous |
|---|
| 281 |
souhaitez vous servir avec Django. Le script examinera la base de données et |
|---|
| 282 |
créera un modÚle pour chaque table de celle-ci. |
|---|
| 283 |
|
|---|
| 284 |
Comme on peut s'y attendre, les modÚles créés auront un attribut pour chaque |
|---|
| 285 |
champ de la table. Notez que ``inspectdb`` peut générer quelques cas particuliers |
|---|
| 286 |
dans les noms de champ en sortie : |
|---|
| 287 |
|
|---|
| 288 |
* Si ``inspectdb`` ne peut pas associer le type d'une colonne avec un type |
|---|
| 289 |
de champ dans le modÚle, il utilisera ``TextField`` et insérera le |
|---|
| 290 |
commentaire ``'This field type is a guess.'`` à cÎté du champ dans le |
|---|
| 291 |
modÚle généré. |
|---|
| 292 |
|
|---|
| 293 |
* Si le nom de colonne dans la base de données est un nom réservé en Python |
|---|
| 294 |
(comme ``'pass'``, ``'class'`` ou ``'for'``), ``inspectdb`` ajoutera |
|---|
| 295 |
``_field`` au nom de l'attribut. Par exemple, si une table possÚde une |
|---|
| 296 |
colonne ``'for'``, le modÚle généré aura un champ ``'for_field'``, et |
|---|
| 297 |
l'attribut ``db_column`` aura pour valeur ``'for'``. ``inspectdb`` |
|---|
| 298 |
insérera le commentaire ``'Field renamed because it was a Python reserved word.'`` |
|---|
| 299 |
à cÎté du champ. |
|---|
| 300 |
|
|---|
| 301 |
Cette fonction est conçue pour vous faire gagner du temps, certainement pas pour |
|---|
| 302 |
vous donner une version définitive de vos modÚles. AprÚs l'avoir utilisée, |
|---|
| 303 |
passez en revue les modÚles générés pour les personnaliser. Vous devrez en |
|---|
| 304 |
particulier ré-ordonner les modÚles de telle façon que ceux qui sont référencés |
|---|
| 305 |
par d'autres soient présentés dans l'ordre nécessaire. |
|---|
| 306 |
|
|---|
| 307 |
Les clés primaires sont repérées automatiquement pour PostgreSQL, MySQL et |
|---|
| 308 |
SQLite, et Django positionnera correctement l'attribut ``primary_key=True`` là |
|---|
| 309 |
où il est nécessaire. |
|---|
| 310 |
|
|---|
| 311 |
``inspectdb`` fonctionne avec PostgreSQL, MySQL et SQLite. La détection des clés |
|---|
| 312 |
étrangÚres ne fonctionne qu'avec PostgreSQL et certains types de tables MySQL. |
|---|
| 313 |
|
|---|
| 314 |
loaddata <fixture fixture ...> |
|---|
| 315 |
------------------------------ |
|---|
| 316 |
|
|---|
| 317 |
Cherche le jeu de données (fixture) indiqué et le charge dans la base de |
|---|
| 318 |
données. |
|---|
| 319 |
|
|---|
| 320 |
Un *jeu de données* est une collection de fichiers qui contiennent les données |
|---|
| 321 |
sérialisées d'une base de données. Chaque jeu de données possÚde un nom unique, |
|---|
| 322 |
et les fichiers qui le composent peuvent être répartis dans de nombreux |
|---|
| 323 |
répertoires et applications. |
|---|
| 324 |
|
|---|
| 325 |
Django cherche les jeux de données aux trois emplacements suivants : |
|---|
| 326 |
|
|---|
| 327 |
1. Dans le répertoire ``fixtures`` de chaque application installée |
|---|
| 328 |
2. Dans chaque répertoire listé dans la variable ``FIXTURE_DIRS`` |
|---|
| 329 |
3. Dans le chemin indiqué en ligne de commande avec le jeu de données |
|---|
| 330 |
|
|---|
| 331 |
Django chargera dans la base de données tous les jeux de données qu'il trouvera |
|---|
| 332 |
dans chacun de ces emplacements. |
|---|
| 333 |
|
|---|
| 334 |
Si le jeu de données indiqué a une extension qui indique un format de stockage, |
|---|
| 335 |
seuls les jeux de ce format seront utilisés. Par exemple:: |
|---|
| 336 |
|
|---|
| 337 |
django-admin.py loaddata mydata.json |
|---|
| 338 |
|
|---|
| 339 |
ne chargera que les jeux de données appelés ``mydata`` et au format JSON. |
|---|
| 340 |
L'extension doit correspondre au nom répertorié d'un format de sérialisation |
|---|
| 341 |
(comme par exemple ``json`` ou ``xml``). |
|---|
| 342 |
|
|---|
| 343 |
Si vous omettez l'extension, Django cherchera le jeu de donnés dans tous les |
|---|
| 344 |
formats possibles. Par exemple:: |
|---|
| 345 |
|
|---|
| 346 |
django-admin.py loaddata mydata |
|---|
| 347 |
|
|---|
| 348 |
cherchera les jeux de données appelés ``mydata`` dans tous les formats |
|---|
| 349 |
possibles. Si un répertoire de jeux de données contient ``mydata.json``, ce jeu |
|---|
| 350 |
de données sera chargé comme un jeu au format JSON. Toutefois, si deux jeux de |
|---|
| 351 |
données avec le même nom mais un format différent sont rencontrés (par exemple, |
|---|
| 352 |
si ``mydata.json`` et ``mydata.xml`` sont dans le même répertoire), le |
|---|
| 353 |
chargement des jeux de données est abandonné, et toutes les données installées |
|---|
| 354 |
pendant cet appel à ``loaddata`` seront supprimées de la base de données. |
|---|
| 355 |
|
|---|
| 356 |
Les jeux de données indiqués en paramÚtres peuvent préciser un chemin. Les |
|---|
| 357 |
répertoires correspondant seront inclus dans la recherche. Par exemple:: |
|---|
| 358 |
|
|---|
| 359 |
django-admin.py loaddata foo/bar/mydata.json |
|---|
| 360 |
|
|---|
| 361 |
cherchera dans ``<application>/fixtures/foo/bar/mydata.json`` pour toutes les |
|---|
| 362 |
applications installées, dans ``<dirname>/foo/bar/mydata.json`` pour tous les |
|---|
| 363 |
répertoires listés dans ``FIXTURE_DIRS`` et essaiera enfin le chemin |
|---|
| 364 |
``foo/bar/mydata.json``. |
|---|
| 365 |
|
|---|
| 366 |
Notez que l'ordre dans lequel les fichiers du jeu de données sont traités n'est |
|---|
| 367 |
pas défini. Cependant, les données du jeu sont installées en une seule |
|---|
| 368 |
transaction, ce qui permet aux données d'un jeu de référencer les données d'un |
|---|
| 369 |
autre jeu. Si l'interface de la base de données supporte les contraintes au |
|---|
| 370 |
niveau ligne, ces contraintes seront vérifiées en fin de transaction. |
|---|
| 371 |
|
|---|
| 372 |
.. admonition:: MySQL et les jeux de données |
|---|
| 373 |
|
|---|
| 374 |
Malheureusement, MySQL ne peut pas supporter complÚtement toutes les |
|---|
| 375 |
caractéristiques de jeux de données Django. Si vous utilisez des tables |
|---|
| 376 |
MyISAM, MySQL ne supporte pas les transactions ni les contraintes, donc vous |
|---|
| 377 |
n'aurez ni retour en arriÚre si de multiples fichiers de transaction sont |
|---|
| 378 |
trouvés, ni la validation des données du jeu. Si vous utilisez des tables |
|---|
| 379 |
InnoDB, vous ne pourrez pas avoir de références "en avant" (forward |
|---|
| 380 |
references) dans vos fichiers de données - MySQL ne fournit pas de mécanisme |
|---|
| 381 |
qui permette de retarder la vérification des contraintes sur les lignes |
|---|
| 382 |
jusqu'à ce qu'une transaction soit validée. |
|---|
| 383 |
|
|---|
| 384 |
--verbosity |
|---|
| 385 |
~~~~~~~~~~~ |
|---|
| 386 |
|
|---|
| 387 |
Utilisez ``--verbosity`` pour augmenter la quantité d'information de |
|---|
| 388 |
notification et de déboguage que ``django-admin.py`` affichera sur la console. |
|---|
| 389 |
|
|---|
| 390 |
* ``0`` ne donnera aucun affichage. |
|---|
| 391 |
* ``1`` affichage normal (valeur par défaut). |
|---|
| 392 |
* ``2`` affichage bavard. |
|---|
| 393 |
|
|---|
| 394 |
Exemple:: |
|---|
| 395 |
|
|---|
| 396 |
django-admin.py loaddata --verbosity=2 |
|---|
| 397 |
|
|---|
| 398 |
makemessages |
|---|
| 399 |
------------ |
|---|
| 400 |
|
|---|
| 401 |
**Nouveau dans la version de développement de Django** |
|---|
| 402 |
|
|---|
| 403 |
Parcourt l'ensemble de l'arbre des sources du répertoire courant, et récupÚre |
|---|
| 404 |
toutes les chaînes de caractÚres à traduire. Crée (ou met à jour) un fichier de |
|---|
| 405 |
messages dans le répertoire conf/locale (dans l'arbre des sources Django) ou |
|---|
| 406 |
locale (pour un projet ou une application). Une fois que vous aurez fait les |
|---|
| 407 |
changements nécessaires sur les fichiers de messages, vous devrez les compiler |
|---|
| 408 |
avec ``compilemessages`` pour les utiliser avec le support gettext inclus. Voir |
|---|
| 409 |
la `documentation i18n`_ pour plus d'informations. |
|---|
| 410 |
|
|---|
| 411 |
--all |
|---|
| 412 |
~~~~~ |
|---|
| 413 |
|
|---|
| 414 |
Utilisez l'option ``-all`` ou ``-a`` pour mettre à jour les fichiers de messages |
|---|
| 415 |
pour toutes les langues disponibles. |
|---|
| 416 |
|
|---|
| 417 |
Exemple:: |
|---|
| 418 |
|
|---|
| 419 |
django-admin.py makemessages --all |
|---|
| 420 |
|
|---|
| 421 |
--extension |
|---|
| 422 |
~~~~~~~~~~~ |
|---|
| 423 |
|
|---|
| 424 |
Utilisez l'option ``--extension`` ou ``-e`` pour spécifier une liste d'extensions de |
|---|
| 425 |
fichiers à examiner (la valeur par défaut est ".html"). |
|---|
| 426 |
|
|---|
| 427 |
Exemple:: |
|---|
| 428 |
|
|---|
| 429 |
django-admin.py makemessages --locale=de --extension xhtml |
|---|
| 430 |
|
|---|
| 431 |
Séparez des valeurs multiples par des virgules, ou utilisez -e ou --extension |
|---|
| 432 |
plusieurs fois : :: |
|---|
| 433 |
|
|---|
| 434 |
django-admin.py makemessages --locale=de --extension=html,txt --extension xml |
|---|
| 435 |
|
|---|
| 436 |
--locale |
|---|
| 437 |
~~~~~~~~ |
|---|
| 438 |
|
|---|
| 439 |
Utilisez l'option ``--locale`` ou ``-l`` pour spécifier les locales à traiter. |
|---|
| 440 |
|
|---|
| 441 |
Exemple:: |
|---|
| 442 |
|
|---|
| 443 |
django-admin.py makemessages --locale=br_PT |
|---|
| 444 |
|
|---|
| 445 |
--domain |
|---|
| 446 |
~~~~~~~~ |
|---|
| 447 |
|
|---|
| 448 |
Utilisez l'option ``--domain`` ou ``-d`` pour changer le domaine d'application |
|---|
| 449 |
des fichiers de messages. Actuellement, sont supportés : :: |
|---|
| 450 |
|
|---|
| 451 |
* ``django`` pour tous les fichiers ``*.py`` et ``*.html`` (valeur par |
|---|
| 452 |
défaut) |
|---|
| 453 |
* ``djangojs`` pour les fichiers ``*.js`` |
|---|
| 454 |
|
|---|
| 455 |
--verbosity |
|---|
| 456 |
~~~~~~~~~~~ |
|---|
| 457 |
|
|---|
| 458 |
Utilisez ``--verbosity`` pour augmenter la quantité d'information de |
|---|
| 459 |
notification et de déboguage que ``django-admin.py`` affichera sur la console. |
|---|
| 460 |
|
|---|
| 461 |
* ``0`` ne donnera aucun affichage. |
|---|
| 462 |
* ``1`` affichage normal (valeur par défaut). |
|---|
| 463 |
* ``2`` affichage bavard. |
|---|
| 464 |
|
|---|
| 465 |
Exemple:: |
|---|
| 466 |
|
|---|
| 467 |
django-admin.py makemessages --verbosity=2 |
|---|
| 468 |
|
|---|
| 469 |
reset <application application ...> |
|---|
| 470 |
----------------------------------- |
|---|
| 471 |
|
|---|
| 472 |
Exécute l'équivalent de ``sqlreset`` pour les applications données. |
|---|
| 473 |
|
|---|
| 474 |
--noinput |
|---|
| 475 |
~~~~~~~~~ |
|---|
| 476 |
|
|---|
| 477 |
Utilisez l'option ``--noinput`` pour supprimer toutes les demandes à |
|---|
| 478 |
l'utilisateur, comme les messages de confirmation du genre "Ãtes vous certain |
|---|
| 479 |
?". C'est utile si ``django-admin.py`` est exécuté par un script sans |
|---|
| 480 |
intervention humaine. |
|---|
| 481 |
|
|---|
| 482 |
runfcgi [options] |
|---|
| 483 |
----------------- |
|---|
| 484 |
|
|---|
| 485 |
Lance un ensemble de processus FastCGI utilisables avec tout serveur Web |
|---|
| 486 |
supportant ce protocole. Voir la `documentation de déploiement de FastCGI`_ pour |
|---|
| 487 |
plus d'informations. Le module Python FastCGI de `flup`_ est requis. |
|---|
| 488 |
|
|---|
| 489 |
.. _documentation de déploiement de FastCGI: ../fastcgi/ |
|---|
| 490 |
.. _flup: http://www.saddi.com/software/flup/ |
|---|
| 491 |
|
|---|
| 492 |
runserver [numéro de port (optionnel), ou ipaddr:port] |
|---|
| 493 |
------------------------------------------------------ |
|---|
| 494 |
Démarre un serveur web de développement sur la machine locale. Par défaut, le |
|---|
| 495 |
serveur écoute le port 8000 sur l'adresse IP 127.0.0.1. Vous pouvez passer en |
|---|
| 496 |
paramÚtres une adresse IP et un numéro de port explicitement. |
|---|
| 497 |
|
|---|
| 498 |
Si vous lancez ce script en tant qu'utilisateur avec des privilÚges normaux |
|---|
| 499 |
(recommandé), il est possible que vous n'ayez pas accÚs aux numéros de ports |
|---|
| 500 |
inférieurs à 1024, qui sont réservés au super-utilisateur (root). |
|---|
| 501 |
|
|---|
| 502 |
N'UTILISEZ PAS CE SERVEUR DANS UN ENVIRONNEMENT DE PRODUCTION. Il n'a pas été |
|---|
| 503 |
audité, ni pour la sécurité, ni pour les performances. (Et il ne le sera pas. |
|---|
| 504 |
Nous faisons des environnements de développement Web, pas des serveurs, et |
|---|
| 505 |
l'amélioration de ce serveur en vue de le rendre capable de supporter un |
|---|
| 506 |
environnement de production n'est pas dans les intentions ou la mission de |
|---|
| 507 |
Django.) |
|---|
| 508 |
|
|---|
| 509 |
Le serveur de développement recharge automatiquement le code Python à chaque |
|---|
| 510 |
requête. Vous n'avez pas besoin de redémarrer le serveur pour que les |
|---|
| 511 |
modifications du code soient prises en compte. |
|---|
| 512 |
|
|---|
| 513 |
Lorsque vous démarrez le serveur, et chaque fois que vous changez le code |
|---|
| 514 |
pendant que le serveur fonctionne, celui-ci validera tous les modÚles installés. (Voir |
|---|
| 515 |
la commande ``validate`` ci-dessous). Si le validateur trouve des erreurs, il |
|---|
| 516 |
les enverra vers la sortie standard, mais il ne stoppera pas le serveur. |
|---|
| 517 |
|
|---|
| 518 |
Vous pouvez exécuter autant de serveurs que vous le voulez, du moment qu'ils |
|---|
| 519 |
écoutent des ports différents. Il suffit de lancer la commande ``django-admin.py |
|---|
| 520 |
runserver`` plus d'une fois. |
|---|
| 521 |
|
|---|
| 522 |
Notez que l'adresse IP utilisée par défaut, 127.0.0.1, n'est pas accessible par |
|---|
| 523 |
les autres machines de votre réseau. Pour rendre le serveur de développement accessible |
|---|
| 524 |
par les autres machines de votre réseau, utilisez l'adresse IP de la machine sur |
|---|
| 525 |
celui-ci (par exemple ``192.168.2.1``) ou ``0.0.0.0``. |
|---|
| 526 |
|
|---|
| 527 |
--adminmedia |
|---|
| 528 |
~~~~~~~~~~~~ |
|---|
| 529 |
|
|---|
| 530 |
Utilisez l'option ``--adminmedia`` pour indique à Django où trouver les |
|---|
| 531 |
différents fichiers CSS et JavaScript nécessaires à son interface |
|---|
| 532 |
d'administration. En principe, le serveur de développement de Django récupÚre |
|---|
| 533 |
ces fichiers dans l'arbre des sources de Django automatiquement, mais vous aurez |
|---|
| 534 |
à utiliser cette option si vous voulez modifier ces fichiers pour votre site. |
|---|
| 535 |
|
|---|
| 536 |
Exemple:: |
|---|
| 537 |
|
|---|
| 538 |
django-admin.py runserver --adminmedia=/tmp/new-admin-style/ |
|---|
| 539 |
|
|---|
| 540 |
--noreload |
|---|
| 541 |
~~~~~~~~~~ |
|---|
| 542 |
|
|---|
| 543 |
Utilisez l'option ``--noreload`` pour désactiver le rechargement automatique des |
|---|
| 544 |
sources. Cela signifie que les changements que vous faites au code Python ne |
|---|
| 545 |
seront *pas* pris en compte si le module Python concerné a déjà été chargé en |
|---|
| 546 |
mémoire. |
|---|
| 547 |
|
|---|
| 548 |
Exemple:: |
|---|
| 549 |
|
|---|
| 550 |
django-admin.py runserver --noreload |
|---|
| 551 |
|
|---|
| 552 |
Exemples d'usage sur différents ports et adresses: |
|---|
| 553 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 554 |
|
|---|
| 555 |
Port 8000 sur l'adresse IP 127.0.0.1:: |
|---|
| 556 |
|
|---|
| 557 |
django-admin.py runserver 8000 |
|---|
| 558 |
|
|---|
| 559 |
Port 8000 sur l'adresse 1.2.3.4:: |
|---|
| 560 |
|
|---|
| 561 |
django-admin.py runserver 1.2.3.4:8000 |
|---|
| 562 |
|
|---|
| 563 |
Port 7000 sur l'adresse IP 127.0.0.1:: |
|---|
| 564 |
|
|---|
| 565 |
django-admin.py runserver 7000 |
|---|
| 566 |
|
|---|
| 567 |
Comment servir des fichiers statiques avec le serveur de développement ? |
|---|
| 568 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 569 |
|
|---|
| 570 |
Par défaut, le serveur de développement ne sert aucun fichier statique pour |
|---|
| 571 |
votre site (comme des fichiers CSS, des images, tout ce qui peut se trouver dans |
|---|
| 572 |
``MEDIA_ROOT_URL``, etc.). Si vous voulez configurer Django pour qu'il serve des |
|---|
| 573 |
fichiers statiques, lisez la documentation `servir des fichiers statiques`_. |
|---|
| 574 |
|
|---|
| 575 |
.. _servir des fichiers statiques: ../static_files/ |
|---|
| 576 |
|
|---|
| 577 |
shell |
|---|
| 578 |
----- |
|---|
| 579 |
|
|---|
| 580 |
Démarre l'interpréteur en mode interactif de Python. |
|---|
| 581 |
|
|---|
| 582 |
Django utilisera IPython_ s'il est installé. Si IPython est installé et |
|---|
| 583 |
que vous voulez utiliser l'interpréteur de base de Python, utilisez l'option |
|---|
| 584 |
``--plain`` de cette façon:: |
|---|
| 585 |
|
|---|
| 586 |
django-admin.py shell --plain |
|---|
| 587 |
|
|---|
| 588 |
.. _IPython: http://ipython.scipy.org/ |
|---|
| 589 |
|
|---|
| 590 |
sql <application application ...> |
|---|
| 591 |
--------------------------------- |
|---|
| 592 |
|
|---|
| 593 |
Affiche les commandes SQL CREATE TABLE pour les applications indiquées. |
|---|
| 594 |
|
|---|
| 595 |
sqlall <application application ...> |
|---|
| 596 |
------------------------------------ |
|---|
| 597 |
|
|---|
| 598 |
Affiche les commandes SQL CREATE TABLE et d'ajout de données initiales pour les |
|---|
| 599 |
applications indiquées. |
|---|
| 600 |
|
|---|
| 601 |
Voir la description de la commande ``sqlcustom`` ci-dessous pour savoir |
|---|
| 602 |
comment spécifier des données initiales. |
|---|
| 603 |
|
|---|
| 604 |
sqlclear <application application ...> |
|---|
| 605 |
-------------------------------------- |
|---|
| 606 |
|
|---|
| 607 |
Affiche les commandes SQL DROP TABLE pour les applications indiquées. |
|---|
| 608 |
|
|---|
| 609 |
sqlcustom <application application ...> |
|---|
| 610 |
--------------------------------------- |
|---|
| 611 |
|
|---|
| 612 |
Affiche les commandes SQL personnalisées pour les applications indiquées. |
|---|
| 613 |
|
|---|
| 614 |
Pour chaque modÚle de chaque application spécifiée, cette commande recherche le |
|---|
| 615 |
fichier ``<application>/sql/<modelname>.sql``, où ``<application>`` est |
|---|
| 616 |
l'application donnée et ``<modelname>`` le nom du modÚle en minuscules. Par |
|---|
| 617 |
exemple, si vous avez une application ``news`` qui inclut un modÚle ``Article``, |
|---|
| 618 |
``sqlcustom`` essaiera de lire un fichier ``news/sql/article.sql`` et l'ajoutera |
|---|
| 619 |
à la sortie de cette commande. |
|---|
| 620 |
|
|---|
| 621 |
Chaque fichier SQL, s'il existe, doit contenir du SQL valide. Les fichiers SQL |
|---|
| 622 |
sont directement passés à la base de données aprÚs que toutes les commandes de |
|---|
| 623 |
création de tables aient été exécutés. Utilisez ce lien avec SQL pour faire les |
|---|
| 624 |
modifications de tables ou les insertions de fonctions que vous souhaitez dans |
|---|
| 625 |
la base de données. |
|---|
| 626 |
|
|---|
| 627 |
Notez que l'ordre dans lequel les fichiers SQL sont traités n'est pas défini. |
|---|
| 628 |
|
|---|
| 629 |
sqlflush |
|---|
| 630 |
-------- |
|---|
| 631 |
|
|---|
| 632 |
Affiche les commandes SQL qui seraient exécutées par la commande `flush`_. |
|---|
| 633 |
|
|---|
| 634 |
sqlindexes <application application ...> |
|---|
| 635 |
---------------------------------------- |
|---|
| 636 |
|
|---|
| 637 |
Affiche les commandes SQL CREATE INDEX pour les applications indiquées. |
|---|
| 638 |
|
|---|
| 639 |
sqlreset <application application ...> |
|---|
| 640 |
-------------------------------------- |
|---|
| 641 |
|
|---|
| 642 |
Affiche les commandes SQL DROP TABLE puis CREATE TABLE pour les applications |
|---|
| 643 |
indiquées. |
|---|
| 644 |
|
|---|
| 645 |
sqlsequencereset <application application ...> |
|---|
| 646 |
---------------------------------------------- |
|---|
| 647 |
|
|---|
| 648 |
Affiche les commandes SQL pour réinitialiser les séquences PostgreSQL pour |
|---|
| 649 |
les applications indiquées. |
|---|
| 650 |
|
|---|
| 651 |
Voir http://simon.incutio.com/archive/2004/04/21/postgres pour de plus amples |
|---|
| 652 |
informations. |
|---|
| 653 |
|
|---|
| 654 |
startapp <application> |
|---|
| 655 |
---------------------- |
|---|
| 656 |
|
|---|
| 657 |
Crée un répertoire d'application Django pour l'application indiquée dans le |
|---|
| 658 |
répertoire courant. |
|---|
| 659 |
|
|---|
| 660 |
startproject <projet> |
|---|
| 661 |
--------------------- |
|---|
| 662 |
|
|---|
| 663 |
Crée un répertoire de projet Django pour le projet indiqué dans le répertoire |
|---|
| 664 |
courant. |
|---|
| 665 |
|
|---|
| 666 |
syncdb |
|---|
| 667 |
------ |
|---|
| 668 |
|
|---|
| 669 |
Crée les tables de base de données pour toutes les applications listées dans |
|---|
| 670 |
``INSTALLED_APPS`` dont les tables n'existent pas encore. |
|---|
| 671 |
|
|---|
| 672 |
Utilisez cette commande lorsque vous avez ajouté de nouvelles applications à |
|---|
| 673 |
votre projet et voulez les installer dans la base de données. Les applications |
|---|
| 674 |
livrées avec Django qui peuvent être dans ``INSTALLED_APPS`` par défaut sont |
|---|
| 675 |
concernées également. Lorsque vous commencez un nouveau projet, utilisez cette |
|---|
| 676 |
commande pour installer les applications par défaut. |
|---|
| 677 |
|
|---|
| 678 |
.. admonition:: Syncdb ne touchera pas aux tables existantes |
|---|
| 679 |
|
|---|
| 680 |
``syncdb`` ne fera que créer les tables pour les modÚles qui n'ont pas encore |
|---|
| 681 |
fait l'objet d'une installation. Elle n'émettra *jamais* de commande ``ALTER |
|---|
| 682 |
TABLE`` pour suivre les modifications faites à une classe de modÚle aprÚs son |
|---|
| 683 |
installation. Les changements des classes de modÚles et de schémas de bases |
|---|
| 684 |
de données ont souvent leur part d'ambiguïté, et, dans ce genre de cas, |
|---|
| 685 |
Django aurait à deviner les modifications correctes qu'il faut faire. Il |
|---|
| 686 |
existe un risque de perdre des données critiques dans ce cas. |
|---|
| 687 |
|
|---|
| 688 |
Si vous devez faire des modifications à un modÚle et voulez altérer vous-même |
|---|
| 689 |
la table de base de données pour qu'elle suive ces modifications, utilisez la |
|---|
| 690 |
commande ``sql`` pour afficher la nouvelle structure SQL de la table et la |
|---|
| 691 |
comparer à l'existant afin de repérer les modifications. |
|---|
| 692 |
|
|---|
| 693 |
Si vous installez l'application ``django.contrib.auth``, ``syncdb`` vous |
|---|
| 694 |
proposera de créer un superutilisateur immédiatement. |
|---|
| 695 |
|
|---|
| 696 |
``syncdb`` cherchera et installera également tout jeu de données nommé |
|---|
| 697 |
``initial_data``. Voyez la documentation de ``loaddata`` pour les détails de la |
|---|
| 698 |
spécification des fichiers de jeux de données. |
|---|
| 699 |
|
|---|
| 700 |
--verbosity |
|---|
| 701 |
~~~~~~~~~~~ |
|---|
| 702 |
|
|---|
| 703 |
Utilisez ``--verbosity`` pour augmenter la quantité d'information de |
|---|
| 704 |
notification et de déboguage que ``django-admin.py`` affichera sur la console. |
|---|
| 705 |
|
|---|
| 706 |
* ``0`` ne donnera aucun affichage. |
|---|
| 707 |
* ``1`` affichage normal (valeur par défaut). |
|---|
| 708 |
* ``2`` affichage bavard. |
|---|
| 709 |
|
|---|
| 710 |
Exemple:: |
|---|
| 711 |
|
|---|
| 712 |
django-admin.py syncdb --verbosity=2 |
|---|
| 713 |
|
|---|
| 714 |
--noinput |
|---|
| 715 |
~~~~~~~~~ |
|---|
| 716 |
|
|---|
| 717 |
Utilisez l'option ``--noinput`` pour supprimer toutes les demandes à |
|---|
| 718 |
l'utilisateur, comme les messages de confirmation du genre "Ãtes vous certain |
|---|
| 719 |
?". C'est utile si ``django-admin.py`` est exécuté par un script sans |
|---|
| 720 |
intervention humaine. |
|---|
| 721 |
|
|---|
| 722 |
test |
|---|
| 723 |
---- |
|---|
| 724 |
|
|---|
| 725 |
Exécute les tests pour tous les modÚles installés. Voir `Tester les |
|---|
| 726 |
applications Django`_ pour plus d'informations. |
|---|
| 727 |
|
|---|
| 728 |
.. _Tester les applications Django: ../testing/ |
|---|
| 729 |
|
|---|
| 730 |
--noinput |
|---|
| 731 |
~~~~~~~~~ |
|---|
| 732 |
|
|---|
| 733 |
Utilisez l'option ``--noinput`` pour supprimer toutes les demandes à |
|---|
| 734 |
l'utilisateur, comme les messages de confirmation du genre "Ãtes vous certain |
|---|
| 735 |
?". C'est utile si ``django-admin.py`` est exécuté par un script sans |
|---|
| 736 |
intervention humaine. |
|---|
| 737 |
|
|---|
| 738 |
--verbosity |
|---|
| 739 |
~~~~~~~~~~~ |
|---|
| 740 |
|
|---|
| 741 |
Utilisez ``--verbosity`` pour augmenter la quantité d'information de |
|---|
| 742 |
notification et de déboguage que ``django-admin.py`` affichera sur la console. |
|---|
| 743 |
|
|---|
| 744 |
* ``0`` ne donnera aucun affichage. |
|---|
| 745 |
* ``1`` affichage normal (valeur par défaut). |
|---|
| 746 |
* ``2`` affichage bavard. |
|---|
| 747 |
|
|---|
| 748 |
Exemple:: |
|---|
| 749 |
|
|---|
| 750 |
django-admin.py test --verbosity=2 |
|---|
| 751 |
|
|---|
| 752 |
testserver <fixture fixture ...> |
|---|
| 753 |
-------------------------------- |
|---|
| 754 |
|
|---|
| 755 |
**Nouveau dans la version de développement de Django** |
|---|
| 756 |
|
|---|
| 757 |
Exécute le serveur de développement de Django (comme ``runserver``) en utilisant |
|---|
| 758 |
les jeux de données (``fixture``) indiqués. |
|---|
| 759 |
|
|---|
| 760 |
Par exemple, cette commande:: |
|---|
| 761 |
|
|---|
| 762 |
django-admin.py testserver mydata.json |
|---|
| 763 |
|
|---|
| 764 |
... entraînerait les étapes suivantes : |
|---|
| 765 |
|
|---|
| 766 |
1. Création d'une base de données de test, comme il est décrit dans `Tester |
|---|
| 767 |
les applications Django`_. |
|---|
| 768 |
2. Enregistrement des données des jeux de données indiqués dans la base de |
|---|
| 769 |
données. (Pour plus d'informations sur les jeux de données, voir la |
|---|
| 770 |
documentation de ``loaddata`` ci-dessus.) |
|---|
| 771 |
3. Exécution du serveur de développement de Django (comme ``runserver``) en |
|---|
| 772 |
utilisant cette base de données de test à la place de la base de |
|---|
| 773 |
production. |
|---|
| 774 |
|
|---|
| 775 |
C'est utile dans différents cadres : |
|---|
| 776 |
|
|---|
| 777 |
* Quand vous écrivez des `tests unitaires`_ sur la façon dont vos vues |
|---|
| 778 |
fonctionnent avec certains jeux de données, vous pouvez utiliser |
|---|
| 779 |
``testserver`` pour interagir avec les vues dans un navigateur web, |
|---|
| 780 |
manuellement. |
|---|
| 781 |
|
|---|
| 782 |
* Supposons que vous développez une application Django et que vous avez une |
|---|
| 783 |
copie d'origine de votre base de données avec laquelle vous aimeriez |
|---|
| 784 |
travailler. Vous pouvez sauver votre base dans un jeu de données (en |
|---|
| 785 |
utilisant la commande ``dumpdata`` expliquée ci-dessus), puis utiliser |
|---|
| 786 |
``testserver`` pour travailler sur votre application web avec ces données. |
|---|
| 787 |
De cette façon, vous avez la possibilité de modifier les données autant |
|---|
| 788 |
que vous le voulez en sachant que les modifications que vous faites ne |
|---|
| 789 |
touchent que la base de test, et donc que l'intégrité de la base originale |
|---|
| 790 |
est respectée. |
|---|
| 791 |
|
|---|
| 792 |
Notez que ce serveur ne détecte pas automatiquement les changements de votre |
|---|
| 793 |
code source Python (comme le fait ``runserver``). Toutefois, il détecte les |
|---|
| 794 |
changements dans les templates. |
|---|
| 795 |
|
|---|
| 796 |
.. _tests unitaires: ../testing/ |
|---|
| 797 |
|
|---|
| 798 |
--addrport [numéro de port ou ipaddr:port] |
|---|
| 799 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 800 |
|
|---|
| 801 |
Utilisez ``--addrport`` pour spécifier un port et une adresse différents des |
|---|
| 802 |
valeurs par défaut de 127.0.0.1:8000. Ces valeurs ont exactement le même format |
|---|
| 803 |
et les mêmes fonctions que les arguments de la sous-commande ``runserver``. |
|---|
| 804 |
|
|---|
| 805 |
Exemples: |
|---|
| 806 |
|
|---|
| 807 |
Pour utiliser le serveur de test sur le port7000 avec les jeux de données |
|---|
| 808 |
``fixture1`` et ``fixture2``:: |
|---|
| 809 |
|
|---|
| 810 |
django-admin.py testserver --addrport 7000 fixture1 fixture2 |
|---|
| 811 |
django-admin.py testserver fixture1 fixture2 --addrport 7000 |
|---|
| 812 |
|
|---|
| 813 |
(Les deux commandes ci-dessus sont équivalentes. Nous les montrons toutes les |
|---|
| 814 |
deux pour indiquer que le fait que les options viennent avant ou aprÚs les |
|---|
| 815 |
arguments de jeux de données est sans importance.) |
|---|
| 816 |
|
|---|
| 817 |
Pour l'exécuter sur 1.2.3.4:7000 avec le jeu de données ``test``:: |
|---|
| 818 |
|
|---|
| 819 |
django-admin.py testserver --addrport 1.2.3.4:7000 test |
|---|
| 820 |
|
|---|
| 821 |
--verbosity |
|---|
| 822 |
~~~~~~~~~~~ |
|---|
| 823 |
|
|---|
| 824 |
Utilisez ``--verbosity`` pour augmenter la quantité d'information de |
|---|
| 825 |
notification et de déboguage que ``django-admin.py`` affichera sur la console. |
|---|
| 826 |
|
|---|
| 827 |
* ``0`` ne donnera aucun affichage. |
|---|
| 828 |
* ``1`` affichage normal (valeur par défaut). |
|---|
| 829 |
* ``2`` affichage bavard. |
|---|
| 830 |
|
|---|
| 831 |
Exemple:: |
|---|
| 832 |
|
|---|
| 833 |
django-admin.py testserver --verbosity=2 |
|---|
| 834 |
|
|---|
| 835 |
validate |
|---|
| 836 |
-------- |
|---|
| 837 |
|
|---|
| 838 |
Valide tous les modÚles installés (en fonction de la variable |
|---|
| 839 |
``INSTALLED_APPS``) et affiche les erreurs de validation sur la sortie standard. |
|---|
| 840 |
|
|---|
| 841 |
Options par défaut |
|---|
| 842 |
================== |
|---|
| 843 |
|
|---|
| 844 |
Bien que certaines sous-commandes aient des options spécifiques, elles acceptent |
|---|
| 845 |
toutes les options qui suivent. |
|---|
| 846 |
|
|---|
| 847 |
--pythonpath |
|---|
| 848 |
------------ |
|---|
| 849 |
|
|---|
| 850 |
Exemple:: |
|---|
| 851 |
|
|---|
| 852 |
django-admin.py syncdb --pythonpath='/home/djangoprojects/myproject' |
|---|
| 853 |
|
|---|
| 854 |
Ajoute le chemin systÚme indiqué au `chemin de recherche d'import`_ Python. Si |
|---|
| 855 |
cette option n'est pas fournie, ``django-admin.py`` utilisera la valeur de la |
|---|
| 856 |
variable d'environnement ``PYTHONPATH``. |
|---|
| 857 |
|
|---|
| 858 |
Notez que cette option n'est pas nécessaire pour ``manage.py``, parce que ce |
|---|
| 859 |
script s'occupe du chemin de recherche Python pour vous. |
|---|
| 860 |
|
|---|
| 861 |
.. _chemin de recherche d'import: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html |
|---|
| 862 |
|
|---|
| 863 |
--settings |
|---|
| 864 |
---------- |
|---|
| 865 |
|
|---|
| 866 |
Exemple:: |
|---|
| 867 |
|
|---|
| 868 |
django-admin.py syncdb --settings=mysite.settins |
|---|
| 869 |
|
|---|
| 870 |
Spécifie de façon explicite le module de réglages (``settings``) à utiliser. Le |
|---|
| 871 |
module doit être indiqué en syntaxe Python, par exemple ``mysite.settings``. Si |
|---|
| 872 |
cette option n'est pas fournie, Django utilisera la valeur de la variable |
|---|
| 873 |
d'environnement ``DJANGO_SETTINGS_MODULE``. |
|---|
| 874 |
|
|---|
| 875 |
Notez que cette option n'est pas nécessaire avec ``manage.py``, parce qu'il |
|---|
| 876 |
utilise le ``settings.py`` du projet courant par défaut. |
|---|
| 877 |
|
|---|
| 878 |
--traceback |
|---|
| 879 |
----------- |
|---|
| 880 |
|
|---|
| 881 |
Exemple:: |
|---|
| 882 |
|
|---|
| 883 |
django-admin.py syncdb --traceback |
|---|
| 884 |
|
|---|
| 885 |
Par défaut, ``django-admin.py`` ne donnera qu'un message simple en cas d'erreur. |
|---|
| 886 |
Si vous spécifiez ``--traceback``, ``django-admin.py`` donnera la trace de la |
|---|
| 887 |
pile complÚte d'erreurs si une exception est levée. |
|---|
| 888 |
|
|---|
| 889 |
Subtilités supplémentaires |
|---|
| 890 |
========================== |
|---|
| 891 |
|
|---|
| 892 |
Coloration syntaxique |
|---|
| 893 |
--------------------- |
|---|
| 894 |
|
|---|
| 895 |
Les commandes ``django-admin.py`` et ``manage.py`` qui envoient du SQL sur la |
|---|
| 896 |
sortie standard utiliseront la coloration syntaxique si votre terminal supporte |
|---|
| 897 |
les codes de couleurs ANSI. Les codes de couleurs ne sont pas utilisés si la sortie |
|---|
| 898 |
est passée (par un tunnel) à un autre programme. |
|---|
| 899 |
|
|---|
| 900 |
Le complément de commandes Bash |
|---|
| 901 |
------------------------------- |
|---|
| 902 |
|
|---|
| 903 |
Si vous utilisez l'interpréteur de commandes Bash, vous pouvez installer le |
|---|
| 904 |
script de complément de commandes (tab completion) pour Django. Il se trouve |
|---|
| 905 |
dans la distribution Django à l'emplacement ``extras/django_bash_completion``. |
|---|
| 906 |
Il permet le complément de commandes pour ``django-admin.py`` et ``manage.py``, |
|---|
| 907 |
et vous pourrez alors... |
|---|
| 908 |
|
|---|
| 909 |
* Entrer ``django-admin.py`` |
|---|
| 910 |
* Appuyer sur [TAB] pour voir toutes les options disponibles |
|---|
| 911 |
* Entrer ``sql``, puis [TAB], pour voir toutes les options qui commencent par ``sql``. |
|---|
| 912 |
|
|---|
| 913 |
Commandes personnalisées |
|---|
| 914 |
======================== |
|---|
| 915 |
|
|---|
| 916 |
**Nouveau dans la version de développement de Django** |
|---|
| 917 |
|
|---|
| 918 |
Les applications peuvent enregistrer leurs propres actions avec ``manage.py``. |
|---|
| 919 |
Par exemple, vous pourriez vouloir ajouter une action ``manage.py`` pour une |
|---|
| 920 |
application Django que vous distribuez. |
|---|
| 921 |
|
|---|
| 922 |
Pour ce faire, ajoutez simplement un répertoire ``management/commands`` à votre |
|---|
| 923 |
application. Chaque module Python de ce répertoire sera automatiquement |
|---|
| 924 |
découvert et enregistré en tant que commande exécutable lorsque vous lancerez |
|---|
| 925 |
``manage.py``:: |
|---|
| 926 |
|
|---|
| 927 |
blog/ |
|---|
| 928 |
__init__.py |
|---|
| 929 |
models.py |
|---|
| 930 |
management/ |
|---|
| 931 |
__init__.py |
|---|
| 932 |
commands/ |
|---|
| 933 |
__init__.py |
|---|
| 934 |
explode.py |
|---|
| 935 |
views.py |
|---|
| 936 |
|
|---|
| 937 |
Dans cet exemple, la commande ``explode`` sera disponible pour tous les projets |
|---|
| 938 |
qui possÚdent l'application ``blog`` dans ``settings.INSTALLED_APPS``. |
|---|
| 939 |
|
|---|
| 940 |
Il n'y a qu'une seule contrainte sur le module ``explode.py`` -- il doit définir |
|---|
| 941 |
une classe appelée ``Command`` qui hérite de |
|---|
| 942 |
``django.core.management.base.BaseCommand``. |
|---|
| 943 |
|
|---|
| 944 |
Pour plus de détails sur la façon de définir vos propres commandes, regardez le |
|---|
| 945 |
code de celles de ``django-admin.py``, dans |
|---|
| 946 |
``/django/core/management/commands``. |
|---|