forked from Fred/gwift-book
prerequisites & django app introduction
This commit is contained in:
parent
cfe6349e6d
commit
72038aeba7
|
@ -26,4 +26,30 @@ Rendez-vous dans ce répertoire, et activez-le grâce à la commande `source bin
|
||||||
Django
|
Django
|
||||||
------
|
------
|
||||||
|
|
||||||
Comme l'environnement est activé, on peut à présent y installer Django. La librairie restera indépendante du reste du système, et ne polluera pas les autres projets.
|
Comme l'environnement est activé, on peut à présent y installer Django. La librairie restera indépendante du reste du système, et ne polluera pas les autres projets. C'est parti: `pip install django`!
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ pip install django
|
||||||
|
Collecting django
|
||||||
|
Downloading Django-1.8.4-py2.py3-none-any.whl (6.2MB)
|
||||||
|
100% |################################| 6.2MB 91kB/s eta 0:00:01
|
||||||
|
Installing collected packages: django
|
||||||
|
Successfully installed django-1.8.4
|
||||||
|
```
|
||||||
|
|
||||||
|
Les commandes de création d'un nouveau site sont à présent disponibles, la principale étant `django-admin startproject`. Par la suite, nous utiliserons `manage.py`, qui constitue un *wrapper* autour de `django-admin`.
|
||||||
|
|
||||||
|
Pour démarrer notre projet, placez-vous dans l'environnement `gwift-env`, activez-le, installez django et lancez `django-admin startproject gwift`. Cette action aura pour effet de créer un nouveau dossier `gwift`, dans lequel on trouve la structure suivante:
|
||||||
|
|
||||||
|
```
|
||||||
|
gwift/
|
||||||
|
__init__.py
|
||||||
|
settings.py
|
||||||
|
urls.py
|
||||||
|
wsgi.py
|
||||||
|
manage.py
|
||||||
|
```
|
||||||
|
|
||||||
|
* `settings.py` contient tous les paramètres globaux à notre projet.
|
||||||
|
* `urls.py` contient les variables de routes, les adresses utilisées et les fonctions vers lesquelles elles pointent.
|
||||||
|
* `wsgi.py` contient la définition de l'interface [WSGI](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface), qui permettra à votre serveur Web (Nginx, Apache, ...) de faire un pont vers votre projet.
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
Une application Django
|
||||||
|
======================
|
||||||
|
|
||||||
|
Comme on l'a vu ci-dessus, `django-admin` permet de créer un nouveau projet. Django fait une distinction entre un **projet** et une **application**:
|
||||||
|
|
||||||
|
* Projet: ensemble des applications, paramètres, pages HTML, middlwares, dépendances, ... qui font que votre code fait ce qu'il est sensé faire.
|
||||||
|
* Application: *contexte* éventuellement indépendant, permettant d'effectuer une partie isolée de ce que l'on veut faire.
|
||||||
|
|
||||||
|
Pour `gwift`, on va notamment avoir une application pour la gestion des listes de souhaits et des éléments, une deuxième application pour la gestion des utilisateurs, voire une troisième application qui gérera les partages entre utilisateurs et listes. On voit bien ici le principe de **contexte**: l'application viendra avec son modèle, ses tests, ses vues, son paramétrage, ... Et pourra éventuellement être réutilisée dans un autre projet. C'est en ça que consistent les [paquets Django](https://www.djangopackages.com/) déjà disponibles: ce sont simplement de petites applications empaquetées pour être réutilisables (eg. [Django-Rest-Framework](https://github.com/tomchristie/django-rest-framework), [Django-Debug-Toolbar](https://github.com/django-debug-toolbar/django-debug-toolbar), ...).
|
Loading…
Reference in New Issue