root/docs/trunk/flatpages.txt

Revision 325, 5.2 kB (checked in by david, 2 years ago)

Corrections typos flatpages

Line 
1 =======================
2 L'application flatpages
3 =======================
4
5 Django est fourni avec une application optionnelle "flatpages". Elle vous
6 permet de stocker du contenu HTML simple "à plat" en base de données et gère la
7 partie gestion pour vous via l'interface d'administration de Django et une API Python.
8
9 Une page à plat est un simple objet contenant une URL, un titre et du contenu.
10 Utilisez les dans les cas un spéciaux et unique, comme les pages "A propos" ou
11 "Politique de confidentialité", que vous voulez stocker en base de données mais
12 pour lesquelles vous ne souhaitez par développer d'application Django particulière.
13
14 Une page à plat peut utiliser un gabarit particulier ou celui fourni par le système
15 par défaut. Elle peut être associée à un ou plusieurs sites.
16
17 Voici quelques exemples de pages à plat sur des sites propulsés par Django :
18
19     * http://www.chicagocrime.org/about/
20     * http://www.lawrence.com/about/contact/
21
22 Installation
23 ============
24
25 Pour installer l'application flatpages, suivez ces étapes :
26
27     1. Installez le `framework de sites`_ en ajoutant ``'django.contrib.sites'``
28        à votre propriété INSTALLED_APPS_, si ce n'est pas déjà le cas. 
29     2. Ajoutez ``'django.contrib.flatpages'`` à votre propriété INSTALLED_APPS_.
30     3. Ajoutez ``'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'``
31        à votre propriété MIDDLEWARE_CLASSES_.
32     4. Lancez la commande ``manage.py syncdb``.
33
34 .. _framework de sites: ../sites/
35 .. _INSTALLED_APPS: ../settings/#installed-apps
36 .. _MIDDLEWARE_CLASSES: ../settings/#middleware-classes
37
38 Comme ça marche
39 ===============
40
41 ``manage.py syncdb`` crée deux tables dans votre base de données: ``django_flatpage``
42 et ``django_flatpage_sites``. ``django_flatpage`` est une simple table de consultation
43 associant simplement une URL à un titre et un pan de texte.
44 ``django_flatpage_sites`` associe une page à plat à un site.
45
46 Le ``FlatpageFallbackMiddleware`` effectue la totalité du travail. A chaque fois
47 qu'une application Django lève une erreur 404, ce middleware vérifie en dernier ressort
48 la base de données des pages à plats avec l'URL recherchée. Plus précisément, il recherche
49 une page à plat avec l'URL donnée et un identifiant de site qui correspond à la propriété SITE_ID_.
50
51 S'il trouve un résultat, il suit l'algorithme suivant :
52
53     * Si la page à plat possède un gabarit spécifique, il charge ce gabarit. Sinon,
54       il charge le gabarit ``flatpages/default.html``.
55     * Il passe au gabarit une unique variable contextuelle, ``flatpage``, qui est
56       l'objet flatpage. Il utilise RequestContext_ dans le rendu du gabarit.
57
58 S'il ne trouve aucun résultat, la requête continue son traitement comme d'habitude.
59
60 Le middleware est uniquement activé sur les 404s -- par sur les 500s ou les réponses ayant un
61 autre code de statut.
62
63 Notez que l'ordre des ``MIDDLEWARE_CLASSES`` est important. Généralement, vous pouvez
64 placer le ``FlatpageFallbackMiddleware`` à la fin de la liste, puisqu'il n'est utilisé
65 qu'en dernier ressort.
66
67 Pour en savoir plus sur les middleware, lisez la `documentation des middleware`_.
68
69 .. _SITE_ID: ../settings/#site-id
70 .. _RequestContext: ../templates_python/#subclassing-context-djangocontext
71 .. _documentation des middleware: ../middleware/
72
73 Comment ajouter, modifier et supprimer une page à plat
74 ======================================================
75
76 Via l'interface d'administration
77 --------------------------------
78
79 Si vous avez activé l'interface d'administration automatique de Django, vous devriez
80 voir une section "Flatpages" sur la page d'accueil de l'administration. Editez les
81 pages à plat comme vous éditez un autre objet du système.
82
83 Via l'API Python
84 ----------------
85
86 Les pages à plats sont définies par un `modèle Django`_ standard, qui se trouve dans
87 `django/contrib/flatpages/models.py`_. Vous pouvez utiliser les objets flatpage via l'
88 `API base de données de Django`_.
89
90 .. _modèle Django: ../model-api/
91 .. _django/contrib/flatpages/models.py: http://code.djangoproject.com/browser/django/trunk/django/contrib/flatpages/models.py
92 .. _API base de données de Django: ../db-api/
93
94 Les gabarits Flatpage
95 =====================
96
97 Par défaut, les pages à plat sont rendues via le gabarit ``flatpages/default.html``,
98 mais vous pouvez modifier ce comportement pour une page à plat particulière.
99
100 La création du gabarit ``flatpages/default.html`` est de votre responsabilité;
101 dans votre répertoire de gabarits, créer simplement un répertoire ``flatpages``
102 contenant le fichier ``default.html``.
103
104 Les gabarits Flatpage reçoivent une unique variable contextuelle ``flatpage``, qui est
105 l'objet flatpage.
106
107 Voici un exemple de gabarit ``flatpages/default.html``::
108
109     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
110         "http://www.w3.org/TR/REC-html40/loose.dtd">
111     <html>
112     <head>
113     <title>{{ flatpage.title }}</title>
114     </head>
115     <body>
116     {{ flatpage.content }}
117     </body>
118     </html>
119    
120 Puisque vous saisissez déjà du HTML brut à partir de la page d'administration
121 d'une flatpage, le ``flatpage.title`` et le ``flatpage.content`` sont tous deux
122 marqués comme ne nécessitant *pas* d'`échappement HTML automatique`_ dans le
123 gabarit.
124
125 .. _échappement HTML automatique: ../templates/#automatic-html-escaping
126
Note: See TracBrowser for help on using the browser.