## page was renamed from Projet/SemaineTech2011/Ateliers/Django ## page was renamed from Projet/SemaineTech/Ateliers/Django <> = SemaineTechAUF : Django = ||<#FF8080>'''ATTENTION :''' cet atelier requiert une préparation préalable, voir la section ''[[#Pr.2BAOk--requis|Pré-requis]]''.<
>''(à effectuer au moins 30 min avant le début de la présentation)''|| === Présentateur(s) === * Olivier Larchevêque === Format === C'est un atelier plutôt participatif, le code source étaye la présentation des concepts de bases. (10min) Ensuite, on commence tout de suite dans la production, pour ajouter des nouvelles fonctionnalités à ce projet. (30min) La communication sera faite à travers le salon jabber. === Description détaillée === Cet atelier porte sur l'introduction du framework Web Django reposant sur Python. C'est ce framework qui est utilisé pour développer les applicatifs Web de l'AUF. Une première partie, un peu plus théorique, présente les concepts généraux d'un framework Web, notamment le modèle MVC. Ces principes seront illustrés par le code source d'un mini-projet. Le but de l'atelier est de construire une application Django qui offre une plateforme de support ; cela permettra dans un projet Django, d'offrir une FAQ et des fichiers d'aides en ligne. C'est un projet concrêt et il l'idée m'est venue d'un ticket qui traîne depuis longtemps : https://redmine.auf.org/issues/1489. Le projet disposera déjà des fonctionnalités pour gérer la FAQ (création des questions/réponses et présentation sur le portail). Vous aurez à construire améliorer ce module pour qu'il puisse gérer des ressources sous forme de fichiers : * Vous aller créer un nouveau type de contenu * Vous aller créer une administration Django pour gérer ce type de contenu * Vous aller intégrer dans le portail, la liste des ressources Les étapes seront accompagnées des codes sources, et expliquées dans le salon de discussion. === Pré-requis === * Un poste client AUF, avec Python >= 2.6 * Avoir les droits d'administrations sur sa machine * Disposer de git (apt-get install git-core) * Dépendances Python : * paquet python-sqlite {{{ sudo apt-get install pythonX-sqlite }}} (avec X votre version de Python) * paquet setuptools {{{ sudo apt-get install python-setuptools }}} * Déployer le projet sur sa machine personnelle * {{{ git clone git://git.auf.org/semainetech_django.git }}} * {{{ cd semainetech_django }}} * {{{ python bootstrap.py }}} * {{{ bin/buildout -c devel.cfg }}} * optionnel : modifier le fichier project/conf.py si vous voulez une base de donnée MySQL (si vous choisissez cette option, vous devrez installer {{{ apt-get install python-mysqldb }}} * {{{ bin/django syncdb }}} (créer un compte admin) * {{{ bin/django migrate }}} * S'assurer d'avoir un projet fonctionnel avant de commencer l'atelier * {{{ bin/django runserver }}} * Ouvrer Firefox et consulter http://127.0.0.1:8000 et vous devez voir la page de démo de la charte graphique * Aller ensuite sur http://127.0.0.1:8000/admin et connecter-vous avec le compte admin crée précedemment * Si tout est OK, CRTL+C pour arrêter le serveur, autrement poker moi sur le salon '''@tech'''. * Optionnel : regarder le livre Django en ligne http://www.djangobook.com/en/2.0 pour appréhender les notions, mais elles seront abordées au début de l'atelier. === Connaissances requises === * Programmation objet * Python === Environnement technique === * Chacun disposera de son propre environnement * Ubuntu (plus facile si on a tous le même système) === Support(s) de présentation === * Pigdin dans un salon de l'AUF * Outil web pour coller le code : http://paste.pocoo.org === Date et heure de passage === * Le 29 Août 2011 à 13h00 TU * Le 1er Septembre à 13h00 TU Durée prévue: 45 minutes de présentations (max) + 15 minutes de questions === Ressources === * URL du projet GIT : git://git.auf.org/semainetech_django.git * Livre Django en ligne : http://www.djangobook.com/en/2.0 * Documentation Django : https://docs.djangoproject.com/en/1.2/ === Archives des conversations === * Archive brute de la [[Projet/SemaineTech/2011/Ateliers/Django/Conversation| conversation]] ==== Commentaires d'après atelier ====