Taille: 3537
Commentaire: Reclassement
|
Taille: 3538
Commentaire: correction faute
|
Texte supprimé. | Texte ajouté. |
Ligne 76: | Ligne 76: |
Il faudra ajouter les dépendances du projet dans buildout.cfg, en ajoutant une entrée ''eggs'' dans la sesion django: | Il faudra ajouter les dépendances du projet dans buildout.cfg, en ajoutant une entrée ''eggs'' dans la section django: |
Sommaire
Documentation non-complète
Basé sur: http://www.justanothercodemonkey.com/2009/08/deploying-django-with-buildout.html
Buildout
Buildout est le système de déploiement d'applications Python qui est en test en ce moment pour les systèmes à Montréal.
Buildout permet de gérer les dépendances, crée un environnement virtuel similaire a virtualenv, etc.
Création du buildout
La procédure utilise paster et les templates django, il faut donc l'installer:
easy_install fez.djangoskel
Création de la structure de base:
paster create -t django_buildout <nom du dossier>
Paster va poser quelques questions:
Selected and implied templates: fez.djangoskel#django_buildout A plain Django buildout Variables: egg: djangodev package: djangodev project: djangodev Enter django_version (Django version to fetch, the default is 1.0.2) ['1.0.2']: Enter django_project_name (Name of the main Django project folder) ['project']
Une fois terminé, on aura l'arborescence suivante:
djangodev |-- bootstrap.py |-- buildout.cfg |-- devel.cfg `-- README.txt
Lors de la premiere utilisation, il faut lancer le boostrap:
$ python ./bootstrap.py Creating directory '/home/bashu/Temp/djangodev/bin'. Creating directory '/home/bashu/Temp/djangodev/parts'. Creating directory '/home/bashu/Temp/djangodev/develop-eggs'. Generated script '/home/bashu/Temp/djangodev/bin/buildout'.
Il faut maintenant lui faire installer les dependances, et créer le projet:
$ ./bin/buildout -c devel.cfg Installing django. ...
Il existe maintenant un nouvel executable bin/django, equivalent a python manage.py:
$ ./bin/django syncdb
Buildout aura aussi créé un dossier pour le projet Django. S'il s'agit d'un projet existant, suffit de copier le contenu du projet dans ce dossier.
À cette étape, il faut ajouter le path du projet dans la configuration de buildout: ajouter la ligne suivante dans la section "django" de buildout.cfg:
extra-paths = <nom du projet>
Il faudra ajouter les dépendances du projet dans buildout.cfg, en ajoutant une entrée eggs dans la section django:
eggs = django_pagination >=1.0 django_sorting <=0.1 django_historique django_exportateur auf_roa_authentification_backend
Il faut spécifier une dépendance par ligne, avec la version minimale ou maximale requise (optionnel).
Un exemple de .gitignore pour un projet django avec buildout
# binaires *.pyc *.pyo # Fichier temporaires: .*.swp *~ \#*# # DB de dev *.db # restants de merge *.orig *.rej # Configuration du projet - par environnement conf.py django.wsgi # buildout .installed.cfg bin develop-eggs downloads eggs log parts tmp
Utilisation
Environnement de dev
# Créer la structure initiale du buildout, génerer les scripts $ python bootstrap.py # Faire le buildout de dev $ bin/buildout -c devel.cfg # Lancer le serveur de dev $ bin/django runserver
Mise en prod
# Créer la structure initiale du buildout, génerer les scripts $ python bootstrap.py # Faire le buildout de prod $ bin/buildout -c buildout.cfg # des fois, on peut avoir un production.cfg
Buildout a généré un django.wsgi dans bin, il suffira de configurer Apache pour l'utiliser