root/docs/trunk/django-admin.txt

Revision 342, 34.9 kB (checked in by anhj, 2 years ago)

Update : authentication.txt r8506, django-admin.txt r8548, generic-views.txt r8506, middleware.txt r8506, sessions.txt r8506, templates.txt r8557

Line 
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``.
Note: See TracBrowser for help on using the browser.