Modifications entre les versions 2 et 3
Version 2 à la date du 2012-09-11 22:14:05
Taille: 323
Éditeur: DavinBaragiotta
Commentaire: titre exact
Version 3 à la date du 2012-09-11 22:29:41
Taille: 12553
Éditeur: DavinBaragiotta
Commentaire: première séance
Texte supprimé. Texte ajouté.
Ligne 6: Ligne 6:
''22h00 heure locale retranscrite ici''
Ligne 7: Ligne 8:
TEST [...] historique tronqué suite à rupture connexion...
[...] reprise autour de la partie ORM
(23:56:46) davin.baragiotta: dans le code c'est université
(23:56:47) davin.baragiotta: :
(23:56:56) davin.baragiotta: personnes = Personne.objects.filter(universite__nom__contains='Montréal')
(23:57:00) davin.baragiotta: voilà
(23:57:20) davin.baragiotta: toutes les personnes qui ont une université dont le nom contient "Montréal"
(23:57:21) davin.baragiotta: :D
(23:57:31) davin.baragiotta: ça marche pour tous?
(23:57:33) khone-cc: :-o
(23:57:49) davin.baragiotta: oubliez les reques complexes en SQL!
(23:57:56) davin.baragiotta: *requêtes
(23:58:20) davin.baragiotta: ok, pendant que je fais une pause santé... voici un exercice :
(23:58:35) davin.baragiotta: le code que vous avez préféré, dans le shell... en explorant :
(23:58:45) davin.baragiotta: copiez-le dans la fonction home()
(23:59:12) davin.baragiotta: stockez l'infos que vous aimez dans les variables
(23:59:27) davin.baragiotta: et passez les au template (à travers c = {} )
(23:59:43) davin.baragiotta: il faut au minimum la variable :
(23:59:49) davin.baragiotta: etablissements = Etablissement.objects.all()
(23:59:50) davin.baragiotta: svp ;)
(23:59:57) davin.baragiotta: (de retour dans 2 minutes)
(00:02:10) davin.baragiotta: de retour
(00:10:52) davin.baragiotta: bon retombons sur nos pieds
(00:10:55) davin.baragiotta: on faisait quoi?
(00:11:18) davin.baragiotta: on explorait, dans le shell... l'utilisation de l'ORM pour appeler la DB en Python (pas en SQL)
(00:11:29) davin.baragiotta: pour créer des variables dans home()
(00:11:32) davin.baragiotta: donc
(00:11:45) davin.baragiotta: on va maintenant coder le fruit de nos investigations :
(00:12:31) davin.baragiotta: ajoutez dans home :
(00:12:46) davin.baragiotta:
    etablissements = Etablissement.objects.all()
    c = {
        'etablissements': etablissements,
    }
(00:12:57) davin.baragiotta: ensuite, dans le template
(00:13:08) davin.baragiotta: au lieu de faire {{ etablissements }}
(00:13:23) davin.baragiotta: je vais vous montrer à boucler avec le langage de templating de Django
(00:13:31) davin.baragiotta: ouvrez home.html
(00:13:39) davin.baragiotta: il existe des "tags"
(00:13:47) davin.baragiotta: qu'on peut utiliser dasn les templates
(00:13:52) davin.baragiotta: voici la doc :
(00:14:16) davin.baragiotta: https://docs.djangoproject.com/en/1.1/
(00:14:20) davin.baragiotta: 1.1
(00:14:31) davin.baragiotta: dans le centre y,a "Templage layer"
(00:14:38) davin.baragiotta: template, désolé
(00:14:51) davin.baragiotta: built-in tags and filters :
(00:14:52) davin.baragiotta: https://docs.djangoproject.com/en/1.1/ref/templates/builtins/#ref-templates-builtins
(00:15:02) davin.baragiotta: filters = un peu comme filtres SPIP
(00:15:10) davin.baragiotta: tag = plus puissant ;)
(00:15:15) davin.baragiotta: tag for
(00:15:25) davin.baragiotta: https://docs.djangoproject.com/en/1.1/ref/templates/builtins/#for
(00:15:38) davin.baragiotta: {% for e in etablissements %}
(00:15:48) davin.baragiotta: ça ressemble beaucoup à Python
(00:15:52) davin.baragiotta: mais c'en est pas
(00:16:01) davin.baragiotta: faut finir tout tag
(00:16:06) davin.baragiotta: avec son endtag
(00:16:12) davin.baragiotta: {% endfor %}
(00:16:24) davin.baragiotta: codez ceci dans votre template, pour le plaisir :
(00:17:35) khone-cc: <h2>Classe Etablisement</h2>
{% for e in etablissements %}
<li>{{ e }}</li>
{% endfor %}
(00:17:43) davin.baragiotta: ahaha oui!
(00:17:57) davin.baragiotta: (je fatigue! ;) )
(00:18:06) davin.baragiotta:
<h2>Classe Etablisement</h2>
{% for e in etablissements %}
<li>{{ e }}</li>
{% endfor %}
(00:18:11) davin.baragiotta: mieux
(00:18:25) davin.baragiotta: ajoutez <ul> et </ul>
(00:18:29) davin.baragiotta: avant et après for
(00:18:34) davin.baragiotta: pour faire du vrai HTML ;)
(00:18:39) khone-cc: ok
(00:18:48) davin.baragiotta: ok, vous voyez la liste des établissements?
(00:19:25) davin.baragiotta: maintenant... malheureusement l,atelier tire à sa fin
(00:19:31) davin.baragiotta: on est déja`en retard
(00:19:37) davin.baragiotta: mais moi j'ai un peu de temps
(00:19:40) khone-cc: moi, ça à l'aire bien affiché ..
(00:19:46) davin.baragiotta: au mois pour conclure ;)
(00:20:03) davin.baragiotta: revenons au plan :
(00:20:15) davin.baragiotta: ORM : utilisation réelle
(00:20:23) davin.baragiotta: on est rendu dans l'utilisation réelle de l'ORM
(00:20:26) davin.baragiotta: c'est fait
(00:20:35) davin.baragiotta: rendez-vous compte des possibilités :
(00:20:55) davin.baragiotta: vous appelez les données de la base de données comme vous voulez, pour créer une page HTML
(00:21:02) davin.baragiotta: ça pourrait être du RSS
(00:21:21) davin.baragiotta: appeller la DB pour lister dans un template respectant syntaxe RSS les nouvelles
(00:21:30) davin.baragiotta: (mais y,a des outils qui font ça automatiquement)
(00:21:44) davin.baragiotta: je voulais vous faire coder d'autres trucs
(00:21:50) davin.baragiotta: mais tout est toujours trop long
(00:21:57) davin.baragiotta: je vous propose donc de vous téléporter
(00:21:59) davin.baragiotta: dans le temps
(00:22:07) davin.baragiotta: en téléchargeant les sources finales de l'atelier
(00:22:16) davin.baragiotta: avec plein truc dont je peux parler en démo
(00:22:22) davin.baragiotta: (fini le code pour vous)
(00:22:25) davin.baragiotta: ça vous va?
(00:22:45) davin.baragiotta: https://wiki.auf.org/wikiteki/Ateliers/Django/Frontend/Support?action=AttachFile&do=get&target=carto_1_1_final.tar.gz
(00:22:52) davin.baragiotta: sources finales
(00:23:08) davin.baragiotta: décompresser + aller dans répertoire
(00:23:16) davin.baragiotta: + python manage.py runserver
(00:24:23) davin.baragiotta: tout le monde y est?
(00:33:11) davin.baragiotta: messieurs... l'heure est grave....
(00:33:21) davin.baragiotta: c'est la finale en feu d'artifice
(00:33:31) davin.baragiotta: vous avez téléchargé les sources finales
(00:33:43) davin.baragiotta: vous avez décompressé le .tar.gz
(00:33:58) davin.baragiotta: vous êtes dans le répertoire du projet décompressé
(00:34:08) davin.baragiotta: vous allumez le feu :
python manage.py runserver
(00:34:12) davin.baragiotta: et allez sur :
(00:34:22) davin.baragiotta: http://127.0.0.1:8000
(00:34:27) davin.baragiotta: tadaaaaaaaaaaaaaaaaaaaaaaaaaam!!!!!!
(00:35:12) davin.baragiotta: vous devriez avoir un super site avec des styles
(00:35:15) davin.baragiotta: entre autres
(00:35:26) davin.baragiotta: ça marche? (mais cachez votre joie!)
(00:36:59) davin.baragiotta: bon je termine en vous montrant ce qui a été fait... que vous n'avez pas fait :
(00:37:07) davin.baragiotta: https://wiki.auf.org/wikiteki/Ateliers/Django/Frontend/Support
(00:37:13) davin.baragiotta: héritage de template
(00:37:20) davin.baragiotta: regardez bien... y,a un base.html
(00:37:30) davin.baragiotta: qui déclare des {% block ...
(00:37:37) davin.baragiotta: et toutes les autres pages
(00:37:47) davin.baragiotta: {% extends "base.html"
(00:38:01) davin.baragiotta: de sorte que tout le vrai code HTML qu'on veut pas coder dans chaque page
(00:38:05) davin.baragiotta: est dans base.html
(00:38:14) davin.baragiotta: et les autres pages remplissent les block
(00:38:18) davin.baragiotta: autre chose
(00:38:27) davin.baragiotta: les URLs avec paramètres
(00:38:36) davin.baragiotta: ouvres annuaire/urls.py
(00:38:47) davin.baragiotta: voyez la syntaxe particulière pour capter l'id
(00:39:00) davin.baragiotta: ouvrez annuaire/views.py
(00:39:28) davin.baragiotta: regardez le id passé à la fonction... qui nous permet de faire un .get() dans l'ORM... comme on a fait dans le shell
(00:39:47) davin.baragiotta: avec ça : on fait une page de détail... pour CET établissement ou CETTE personne
(00:40:06) davin.baragiotta: le plus impressionnant, c'est le style
(00:40:15) davin.baragiotta: mais c'est rien d'autre que du CSS
(00:40:23) davin.baragiotta: dans répertoire /media/
(00:40:31) davin.baragiotta: correctemetn configuré dans settings.py
(00:40:45) davin.baragiotta: et utilisé dans base.html : {{ MEDIA_URL }}
(00:40:59) davin.baragiotta: finalement...
(00:41:03) davin.baragiotta: la connexion du user
(00:41:15) davin.baragiotta: que je vous laisse expérimenter dans les interfaces
(00:41:30) davin.baragiotta: et étudier sur : urls.py, connexion.html, deconnexion.html
(00:41:38) davin.baragiotta: voilà, c'est tout?
(00:41:56) davin.baragiotta: (24 minutes de dépassé)
(00:41:59) davin.baragiotta: des questions?
(00:42:58) davin.baragiotta: si pas de question... je conclue
(00:43:36) khone-cc: (11:43:37) khuon.tiv: Combien de web codes ont dans cet interface ? Python-Django CSS HTML quoi d'autre ?
(00:44:41) davin.baragiotta: web codes? pas sûr de comprendre... mais les technos impliqués :
(00:45:08) davin.baragiotta: oui : python, django (framework Python), Apache éventuellement, HTTP, CSS, HTML, JS au besoin
(00:45:11) davin.baragiotta: voir le schéma :
(00:45:19) davin.baragiotta: http://montrealpython.org/r/attachments/13/web-development.jpg
(00:45:28) davin.baragiotta: autres questions?
(00:45:43) khone-cc: Non
(00:45:46) khone-cc: yeap, GRAND MERCI PROF PYTHON-DJANGO...
(00:46:02) davin.baragiotta: :D
(00:46:04) khone-cc: on lui laisse à Dodo...
(00:46:09) davin.baragiotta: je conclue donc rapido :
(00:46:16) davin.baragiotta: vous avex une bombe entre les mains :
(00:46:23) davin.baragiotta: la puissance de Python sur le web
(00:46:40) davin.baragiotta: tout ce que vous êtes capables de faire avec des import de Python...
(00:46:52) davin.baragiotta: ... vous pouvez l'utiliser sur le web avec les views...
(00:47:00) davin.baragiotta: et stocker vos data dans une DB
(00:47:24) davin.baragiotta: (là c'était sqlite... mais on peut mettre MySQL évidemment, ou autre)
(00:47:36) davin.baragiotta: tous nos projets SI de l'AUF = Django
(00:47:45) davin.baragiotta: y,a du Python partant dans git.auf.org!
(00:48:00) davin.baragiotta: je vous laisse apprécier la montée en puissance que vous venez de faire
(00:48:02) davin.baragiotta: et surtout
(00:48:13) davin.baragiotta: on est tous ensemble, tout le temps... la communauté tech :
(00:48:22) davin.baragiotta: on vit dans le salon tech, ari-si ou autres
(00:48:32) shafeek.sumser: davin une dernière question: est-ce qu'avec django on peut faire du ajax et jquery?
(00:48:33) davin.baragiotta: n'hésitez à poser les questions et...
(00:48:59) davin.baragiotta: ... on n'est pas obligés d,attendre la prochaine semaine Tech pour continuer d'apprendre et collaborer ;)
(00:49:02) davin.baragiotta: réponse :
(00:49:19) davin.baragiotta: oui, Ajax = rien d'autre qu'un appel de JS sur serveur...
(00:49:39) davin.baragiotta: un appel partiel, en quelque sorte car veut pas une page complète
(00:49:40) davin.baragiotta: donc
(00:49:55) davin.baragiotta: on met le code JQuery qu'on veut dans notre template HTML
(00:50:39) davin.baragiotta: dans une balise link qui lie vers un script : dans /media/js ( {{ MEDIA_URL }}/js/le_script_qui_tue.js
(00:50:45) davin.baragiotta: ensuite
(00:50:50) davin.baragiotta: ce script appelle une URL
(00:50:55) davin.baragiotta: gérée dans urls.py
(00:51:05) davin.baragiotta: qui appelle une fonction dans views.py
(00:51:14) davin.baragiotta: qui retourne un FRAGMENT HTML
(00:51:22) davin.baragiotta: même principe qu'on vient de voir
(00:51:34) davin.baragiotta: sauf un appel partiel pour raffraichir un fragmenr de code
(00:51:51) davin.baragiotta: le JS dans jQuery qui reçoit la réponse partielle...
(00:52:00) davin.baragiotta: ... va ajouter ce fragment dans le DOM en cours
(00:52:03) shafeek.sumser: ok j'étais pas présent, viens d'arriver au bureau je rattraperai ce soir
(00:52:06) davin.baragiotta: voilà ;)
(00:52:22) davin.baragiotta: ok à ce soir (ce matin pour moi... en fait ;) )
(00:52:39) davin.baragiotta: ---------------------- FIN ATELIER DJANGO FRONTEND --------------------------------

Atelier Django Frontend : interfaces publiques d'un site

Transcriptions des ateliers dispensés par messagerie instantanée dans le cadre de la Semaine tech 2012

Transcription séance du 2012-08-31 02h00 GMT

22h00 heure locale retranscrite ici

[...] historique tronqué suite à rupture connexion...
[...] reprise autour de la partie ORM
(23:56:46) davin.baragiotta: dans le code c'est université
(23:56:47) davin.baragiotta: :
(23:56:56) davin.baragiotta: personnes = Personne.objects.filter(universite__nom__contains='Montréal')
(23:57:00) davin.baragiotta: voilà
(23:57:20) davin.baragiotta: toutes les personnes qui ont une université dont le nom contient "Montréal"
(23:57:21) davin.baragiotta: :D
(23:57:31) davin.baragiotta: ça marche pour tous?
(23:57:33) khone-cc: :-o
(23:57:49) davin.baragiotta: oubliez les reques complexes en SQL!
(23:57:56) davin.baragiotta: *requêtes
(23:58:20) davin.baragiotta: ok, pendant que je fais une pause santé... voici un exercice :
(23:58:35) davin.baragiotta: le code que vous avez préféré, dans le shell... en explorant :
(23:58:45) davin.baragiotta: copiez-le dans la fonction home()
(23:59:12) davin.baragiotta: stockez l'infos que vous aimez dans les variables
(23:59:27) davin.baragiotta: et passez les au template (à travers c = {} )
(23:59:43) davin.baragiotta: il faut au minimum la variable :
(23:59:49) davin.baragiotta: etablissements = Etablissement.objects.all()
(23:59:50) davin.baragiotta: svp ;)
(23:59:57) davin.baragiotta: (de retour dans 2 minutes)
(00:02:10) davin.baragiotta: de retour
(00:10:52) davin.baragiotta: bon retombons sur nos pieds
(00:10:55) davin.baragiotta: on faisait quoi?
(00:11:18) davin.baragiotta: on explorait, dans le shell... l'utilisation de l'ORM pour appeler la DB en Python (pas en SQL)
(00:11:29) davin.baragiotta: pour créer des variables dans home()
(00:11:32) davin.baragiotta: donc
(00:11:45) davin.baragiotta: on va maintenant coder le fruit de nos investigations :
(00:12:31) davin.baragiotta: ajoutez dans home :
(00:12:46) davin.baragiotta: 
    etablissements = Etablissement.objects.all()
    c = {
        'etablissements': etablissements,
    }
(00:12:57) davin.baragiotta: ensuite, dans le template
(00:13:08) davin.baragiotta: au lieu de faire {{ etablissements }}
(00:13:23) davin.baragiotta: je vais vous montrer à boucler avec le langage de templating de Django
(00:13:31) davin.baragiotta: ouvrez home.html
(00:13:39) davin.baragiotta: il existe des "tags"
(00:13:47) davin.baragiotta: qu'on peut utiliser dasn les templates
(00:13:52) davin.baragiotta: voici la doc :
(00:14:16) davin.baragiotta: https://docs.djangoproject.com/en/1.1/
(00:14:20) davin.baragiotta: 1.1
(00:14:31) davin.baragiotta: dans le centre y,a "Templage layer"
(00:14:38) davin.baragiotta: template, désolé
(00:14:51) davin.baragiotta: built-in tags and filters :
(00:14:52) davin.baragiotta: https://docs.djangoproject.com/en/1.1/ref/templates/builtins/#ref-templates-builtins
(00:15:02) davin.baragiotta: filters = un peu comme filtres SPIP
(00:15:10) davin.baragiotta: tag = plus puissant ;)
(00:15:15) davin.baragiotta: tag for
(00:15:25) davin.baragiotta: https://docs.djangoproject.com/en/1.1/ref/templates/builtins/#for
(00:15:38) davin.baragiotta: {% for e in etablissements %}
(00:15:48) davin.baragiotta: ça ressemble beaucoup à Python
(00:15:52) davin.baragiotta: mais c'en est pas
(00:16:01) davin.baragiotta: faut finir tout tag
(00:16:06) davin.baragiotta: avec son endtag
(00:16:12) davin.baragiotta: {% endfor %}
(00:16:24) davin.baragiotta: codez ceci dans votre template, pour le plaisir :
(00:17:35) khone-cc: <h2>Classe Etablisement</h2>
{% for e in etablissements %}
<li>{{ e }}</li>
{% endfor %}
(00:17:43) davin.baragiotta: ahaha oui!
(00:17:57) davin.baragiotta: (je fatigue! ;) )
(00:18:06) davin.baragiotta: 
<h2>Classe Etablisement</h2>
{% for e in etablissements %}
<li>{{ e }}</li>
{% endfor %}
(00:18:11) davin.baragiotta: mieux
(00:18:25) davin.baragiotta: ajoutez <ul> et </ul>
(00:18:29) davin.baragiotta: avant et après for
(00:18:34) davin.baragiotta: pour faire du vrai HTML ;)
(00:18:39) khone-cc: ok
(00:18:48) davin.baragiotta: ok, vous voyez la liste des établissements?
(00:19:25) davin.baragiotta: maintenant... malheureusement l,atelier tire à sa fin
(00:19:31) davin.baragiotta: on est déja`en retard
(00:19:37) davin.baragiotta:  mais moi j'ai un peu de temps
(00:19:40) khone-cc: moi, ça à l'aire bien affiché ..
(00:19:46) davin.baragiotta: au mois pour conclure ;)
(00:20:03) davin.baragiotta: revenons au plan :
(00:20:15) davin.baragiotta: ORM : utilisation réelle
(00:20:23) davin.baragiotta: on est rendu dans l'utilisation réelle de l'ORM
(00:20:26) davin.baragiotta: c'est fait
(00:20:35) davin.baragiotta: rendez-vous compte des possibilités :
(00:20:55) davin.baragiotta: vous appelez les données de la base de données comme vous voulez, pour créer une page HTML
(00:21:02) davin.baragiotta: ça pourrait être du RSS
(00:21:21) davin.baragiotta: appeller la DB pour lister dans un template respectant syntaxe RSS les nouvelles
(00:21:30) davin.baragiotta: (mais y,a des outils qui font ça automatiquement)
(00:21:44) davin.baragiotta: je voulais vous faire coder d'autres trucs
(00:21:50) davin.baragiotta: mais tout est toujours trop long
(00:21:57) davin.baragiotta: je vous propose donc de vous téléporter
(00:21:59) davin.baragiotta: dans le temps
(00:22:07) davin.baragiotta: en téléchargeant les sources finales de l'atelier
(00:22:16) davin.baragiotta: avec plein truc dont je peux parler en démo
(00:22:22) davin.baragiotta: (fini le code pour vous)
(00:22:25) davin.baragiotta: ça vous va?
(00:22:45) davin.baragiotta: https://wiki.auf.org/wikiteki/Ateliers/Django/Frontend/Support?action=AttachFile&do=get&target=carto_1_1_final.tar.gz
(00:22:52) davin.baragiotta: sources finales
(00:23:08) davin.baragiotta: décompresser + aller dans répertoire
(00:23:16) davin.baragiotta: + python manage.py runserver
(00:24:23) davin.baragiotta: tout le monde y est?
(00:33:11) davin.baragiotta: messieurs... l'heure est grave....
(00:33:21) davin.baragiotta: c'est la finale en feu d'artifice
(00:33:31) davin.baragiotta: vous avez téléchargé les sources finales
(00:33:43) davin.baragiotta: vous avez décompressé le .tar.gz
(00:33:58) davin.baragiotta: vous êtes dans le répertoire du projet décompressé
(00:34:08) davin.baragiotta: vous allumez le feu :
python manage.py runserver
(00:34:12) davin.baragiotta: et allez sur :
(00:34:22) davin.baragiotta: http://127.0.0.1:8000
(00:34:27) davin.baragiotta: tadaaaaaaaaaaaaaaaaaaaaaaaaaam!!!!!!
(00:35:12) davin.baragiotta: vous devriez avoir un super site avec des styles
(00:35:15) davin.baragiotta: entre autres
(00:35:26) davin.baragiotta: ça marche? (mais cachez votre joie!)
(00:36:59) davin.baragiotta: bon je termine en vous montrant ce qui a été fait... que vous n'avez pas fait :
(00:37:07) davin.baragiotta: https://wiki.auf.org/wikiteki/Ateliers/Django/Frontend/Support
(00:37:13) davin.baragiotta: héritage de template
(00:37:20) davin.baragiotta: regardez bien... y,a un base.html
(00:37:30) davin.baragiotta: qui déclare des {% block ...
(00:37:37) davin.baragiotta: et toutes les autres pages
(00:37:47) davin.baragiotta: {% extends "base.html"
(00:38:01) davin.baragiotta: de sorte que tout le vrai code HTML qu'on veut pas coder dans chaque page
(00:38:05) davin.baragiotta: est dans base.html
(00:38:14) davin.baragiotta: et les autres pages remplissent les block
(00:38:18) davin.baragiotta: autre chose
(00:38:27) davin.baragiotta: les URLs avec paramètres
(00:38:36) davin.baragiotta: ouvres annuaire/urls.py
(00:38:47) davin.baragiotta: voyez la syntaxe particulière pour capter l'id
(00:39:00) davin.baragiotta: ouvrez annuaire/views.py
(00:39:28) davin.baragiotta: regardez le id passé à la fonction... qui nous permet de faire un .get() dans l'ORM... comme on a fait dans le shell
(00:39:47) davin.baragiotta: avec ça : on fait une page de détail... pour CET établissement ou CETTE personne
(00:40:06) davin.baragiotta: le plus impressionnant, c'est le style
(00:40:15) davin.baragiotta: mais c'est rien d'autre que du CSS
(00:40:23) davin.baragiotta: dans répertoire /media/
(00:40:31) davin.baragiotta: correctemetn configuré dans settings.py
(00:40:45) davin.baragiotta: et utilisé dans base.html : {{ MEDIA_URL }}
(00:40:59) davin.baragiotta: finalement...
(00:41:03) davin.baragiotta: la connexion du user
(00:41:15) davin.baragiotta: que je vous laisse expérimenter dans les interfaces
(00:41:30) davin.baragiotta: et étudier sur : urls.py, connexion.html, deconnexion.html
(00:41:38) davin.baragiotta: voilà, c'est tout?
(00:41:56) davin.baragiotta: (24 minutes de dépassé)
(00:41:59) davin.baragiotta: des questions?
(00:42:58) davin.baragiotta: si pas de question... je conclue
(00:43:36) khone-cc: (11:43:37) khuon.tiv: Combien de web codes ont dans cet interface ? Python-Django CSS HTML quoi d'autre ?
(00:44:41) davin.baragiotta: web codes? pas sûr de comprendre... mais les technos impliqués :
(00:45:08) davin.baragiotta: oui : python, django (framework Python), Apache éventuellement, HTTP, CSS, HTML, JS au besoin
(00:45:11) davin.baragiotta: voir le schéma :
(00:45:19) davin.baragiotta: http://montrealpython.org/r/attachments/13/web-development.jpg
(00:45:28) davin.baragiotta: autres questions?
(00:45:43) khone-cc: Non
(00:45:46) khone-cc: yeap, GRAND MERCI PROF PYTHON-DJANGO...
(00:46:02) davin.baragiotta: :D
(00:46:04) khone-cc: on lui laisse à Dodo...
(00:46:09) davin.baragiotta: je conclue donc rapido :
(00:46:16) davin.baragiotta: vous avex une bombe entre les mains :
(00:46:23) davin.baragiotta: la puissance de Python sur le web
(00:46:40) davin.baragiotta: tout ce que vous êtes capables de faire avec des import de Python...
(00:46:52) davin.baragiotta: ... vous pouvez l'utiliser sur le web avec les views...
(00:47:00) davin.baragiotta: et stocker vos data dans une DB
(00:47:24) davin.baragiotta: (là c'était sqlite... mais on peut mettre MySQL évidemment, ou autre)
(00:47:36) davin.baragiotta: tous nos projets SI de l'AUF = Django
(00:47:45) davin.baragiotta: y,a du Python partant dans git.auf.org!
(00:48:00) davin.baragiotta: je vous laisse apprécier la montée en puissance que vous venez de faire
(00:48:02) davin.baragiotta: et surtout
(00:48:13) davin.baragiotta: on est tous ensemble, tout le temps... la communauté tech :
(00:48:22) davin.baragiotta: on vit dans le salon tech, ari-si ou autres
(00:48:32) shafeek.sumser: davin une dernière question: est-ce qu'avec django on peut faire du ajax et jquery?
(00:48:33) davin.baragiotta: n'hésitez à poser les questions et...
(00:48:59) davin.baragiotta: ... on n'est pas obligés d,attendre la prochaine semaine Tech pour continuer d'apprendre et collaborer ;)
(00:49:02) davin.baragiotta: réponse :
(00:49:19) davin.baragiotta: oui, Ajax = rien d'autre qu'un appel de JS sur serveur...
(00:49:39) davin.baragiotta: un appel partiel, en quelque sorte car veut pas une page complète
(00:49:40) davin.baragiotta: donc
(00:49:55) davin.baragiotta: on met le code JQuery qu'on veut dans notre template HTML
(00:50:39) davin.baragiotta: dans une balise link qui lie vers un script : dans /media/js ( {{ MEDIA_URL }}/js/le_script_qui_tue.js
(00:50:45) davin.baragiotta: ensuite
(00:50:50) davin.baragiotta: ce script appelle une URL
(00:50:55) davin.baragiotta: gérée dans urls.py
(00:51:05) davin.baragiotta: qui appelle une fonction dans views.py
(00:51:14) davin.baragiotta: qui retourne un FRAGMENT HTML
(00:51:22) davin.baragiotta: même principe qu'on vient de voir
(00:51:34) davin.baragiotta: sauf un appel partiel pour raffraichir un fragmenr de code
(00:51:51) davin.baragiotta: le JS dans jQuery qui reçoit la réponse partielle...
(00:52:00) davin.baragiotta: ... va ajouter ce fragment dans le DOM en cours
(00:52:03) shafeek.sumser: ok j'étais pas présent, viens d'arriver au bureau je rattraperai ce soir
(00:52:06) davin.baragiotta: voilà ;)
(00:52:22) davin.baragiotta: ok à ce soir (ce matin pour moi... en fait ;) )
(00:52:39) davin.baragiotta: ---------------------- FIN ATELIER DJANGO FRONTEND --------------------------------

Transcription séance du 2012-08-31 15h00 GMT

TEST

Ateliers/2012-08-31 (dernière édition le 2012-09-11 23:08:33 par DavinBaragiotta)