owned this note
owned this note
Published
Linked with GitHub
Prise de notes: sophie.saradjian@aquilenet.fr / [Les Éthers Fertiles](https://les-ethers-fertiles.blog)
# Django Girls Bordeaux
<a href="https://ibb.co/cEUYmx"><img src="https://preview.ibb.co/idZzRx/IMG_20180421_133832965.jpg" alt="IMG_20180421_133832965" border="0"></a>
[TUTO COMPLET DE LA JOURNEE D'ATELIER ](https://tutorial.djangogirls.org/fr/)
Django Girls_Python
# Lectures/Vidéos
[comment marche internet](https://tutorial.djangogirls.org/fr/how_the_internet_works/)
<iframe width="560" height="315" src="https://www.youtube.com/embed/hcPWAyxjd6E" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
[commande line beginner](https://tutorial.djangogirls.org/fr/intro_to_command_line/)
# L'environnement virtuel
**l'environnement virtuel** : c'est un serveur qui est sur ta machine.
souvent dans les config : tu fous en l'air ta machine : le fait de créer un environnement ça permet de pas crasher ta machine (une petite machine sur ta machine (comme une capsule))
**serveur** : c'est une machine, actuellement on créer des machines virtuelles
en gros le carré c'est l'ordi et le S : serveur hardware et les petis s : serveurs virtuels
![serveur](https://cloud.aquilenet.fr/index.php/apps/gallery/s/CRYaMRiET2mbg3m)
**librairie** : ensemble de code que l'on peut charger et s'échanger.
**PIP** : manager de librairies relatives à Python.
# Différence de langagues
- **html/css** : chez le client (sur ton navigateur)
- **python, php, java** : langage serveur : c'est le serveur qui l'execute
- **javascript** : c'est coté client et coté serveur nodejs : faire du javascript coté serveur et de renvoyer les infos (data) côté client
- **framework web** est un ensemble de composants (outils) qui vous aide à développer des sites web plus rapidement et plus facilement.
*Django est un framework web gratuit et libre écrit en Python*
- **script** : instruction : lignes de code c'est comme une recette : tu lis les lignes
- **ORM** : object, relation mapping : fait le lien entre le code et la BDD
![ORM](https://cloud.aquilenet.fr/index.php/apps/gallery/s/ZCEMgH4pL9Ktysc)
dans un logiciel ou site : on a nos fichiers et nos base de donné (comme un calc) on stock des infos pour permettre à notre site d'être plus dynamique
le site : t'as un fichier model/post ces posts : tu donne le mdèle de ton post : titre, description et auteur. (chaine de caractère, champs de texte, auteur : personne)
avec django : on lui dit qu'a partir de tout ça de créer une BDD; quand tu créer ton modele dans la BDD il va dire à la base de donnée : tu vas avoir des postes sous telle forme. a l'inverse aussi quand tu récupère tes datas de dire que les données que tu viens de récupérer : c'est un post avec ce format là
différence avec un cms :
**CMS** (content managing system): ~~outil qui te permet d'éviter de coder.~~ ça permet de gérer du contenu
*Django peut permettre de créer un cms. mais par défaut s'en ai pas un.*
# Les objets
![](https://cloud.aquilenet.fr/index.php/apps/gallery/s/DAKJjMEx4TSPJT2)
**le code** : c'est une suite d'instructions
par exemple,
si on part sur un penalty au foot :
1-le joueur se positionne,
2-il lève la jambe,
3-il tape dans le ballon
pour pouvoir organiser le code, on va créer des fonction : genre de boîte noire qui va executer une suit de procédures
sur le terrain on va dire : penalty : execute la commande (1,2,3) exécute toutes nos instructions
Si on fait une suite de fonction et instructions, le code est pas organisé et c'est moche et désordonné (procédural) et pas facile à maintenir (c'est si il y a des évolutions, le dev d'après ou toi, tu dois pouvoir rajouter une fonctionnalité facilement ou débugger)
du coup on a créer les objet
penser en objet : c'est tout ce qui nous entoure
le joueur de foot devient un objet
un objet : par définiton : des attributs, (des propriété) et des méthodes (fonctions, actions)
le joueur : - attributs ou propriété : taille, force, couleur des yeux, age, poid...
- méthodes : se positionner, lever la jambe, taper (1,2,3...)
ça peut aussi être un téléphone :
- attribut : marque, taille...
- méthodes, action : s'allumer, s'éteindre, envoie sms, internet, musique, ...
On va essayer de s'en servir partout (écriture particulière VS le code procédural)
donc ton objet = joueur
on accède à une méthode (1,2,3) pour accèder à la méthode : mettre un .
```
joueur.se_positionner
joueur.lever_la_jambe
joueur.taper
```
si on veut accéder à une propriété :
`joueur.taille`
le soucis on ne sais pas ce qui est proriété ou méthode à ka relecture.
Pour les méthode on rajoute des () elles servent à rajouter des paramettres dedans
```
joueur.se_positionner()
joueur.lever_la_jambe()
joueur.taper(ballon)
```
fonction : suite de procédure ou bout de code, à partir du moment que c'est à l'intérieur d'un objet : c'est une **méthode**
Ce joueur, il peut pas sortir de nulle part, il faut le définir, et cela s'appelle une **classe**
cette classe là, "JOUEUR" permet d'*instancier* (créer) chaques joueurs (donc on peut programmer une équipe de foot)
MODELE = CLASS (c'est l'objet)
TABLES (comme des feuilles excell) : coté BDD c'est là ou tu stock tes différents (post, utilisateurs...)
il créer des tables et ensuite les mettre à jour pour les mettres sur la BDD (le lien entre : ORM)
Migrer : c'est mettre à jour la BDD par rapport au différent modèle du projet
Base de donnée : permet de stocker des données (articles, utilisateurs, commentaires) *tout ce qui est dynamique sur un site*
Dès que tu sais qu'un élément est dynamique (plusieurs éléments différents ou une valeur qui peut changer)
sites statique : page simple qui ne bouge pas
VS dynamique :
# Html/CSS :
![](https://cloud.aquilenet.fr/index.php/apps/gallery/s/Ewb9XCJM6wZwgZ3)
**HTML** : sert à structurer le contenu ; en gros, c'est le client (navigateur) qui va lire le contenu et le html va lui donner des détails sur ce qui est ce contenu.
Si vous souhaitez voir le contenu en html d'une page web, il vous suffit de faire : `(ctrl+u) ` et la page web apparaitra dans le langage html.
Le langage HTML est un langage à balise
si c'est un paragraphe :
`<p> blabla <p/p>`
pour toutes les balises `on peut mettre des classes et des id
<*h1 class="toto"> salut <*/h1>
<*h1 id="tata">tata<*/h1>
**CSS** : sert à la mise en forme (tout le style)
je veux que mon texte sois en gras, image au milieu....
![](https://cloud.aquilenet.fr/index.php/apps/gallery/s/EqNBgdo7KCqXYtL)
# Les noms de domaines :
le nom de domaine :
ton site est sur un serveur. si tu veux accèder à ce site il faut que tu accède à l'adresse IP de la machine. pour accèder d'un ordi à un autre on y accède par une adresse IP
pour trouver l'adresse IP taper sur son terminal
ping www.google.fr
PING www.google.fr (216.58.213.227) 56(84) bytes of data.
Nom de domaine c'est composé du nom et de l'extension (.com ; .edu ; .blog : ce sont les extensions)
tu choisis celle que tu veux :
1) référencement
2) valeurs personelles
tu peux aussi avoir un sous domaine
[boutique][nom de domaine][extension]
algorythme de google pour les recherches:
- plus tu achète des extensions bizarres et peu chères, moins tu va être bien référencé sur une recherche google.
- Si tu veux être référencé et apparaître en haut de la liste google, il faut acheter des nom de domaines en .com, .academy, .goov, .coop (ces 2 derniers demandent des formalités très très exigeantes afin de pouvoir les acheter, du coup ils sont bien référencés)
# bugg
sur notre machine on a le local
ensuite github
et prod : python anywhere
on veut pas que sur github me /myenv
github on veut pas le /myenv
mais en prod
# Regex
c'est des raccourcis qui permettent de définir une règle
la partie regex c'est pattern (un modèle/un patron)
si on veut vérifier une url : par exemple tout les /amdin
# Boostrap
on s'est rendus compte qu'en CSS on fait souvent la même chose ; donc on a fait un framework pour éviter de répéter les mêmes choses et avoir une organisation homogène.
Si on veut que tous les boutons soient les même : tu utilise bootstrap pour avoir des class html ou il y a dejà du code css dessus.
très bonne docu : https://getbootstrap.com/
très bien mais il y a une petite guerre :
créé par tweeter : utilisé pour l'admin et mettre en page l'admin. Mais bcp de gens l'utilisent pour faire du front. Mais c'est mal vu. Parce qu'on pourrait faire plus simple et les sites se ressemble parce que le graphisme est le même.
autres alternatives : fondation
# Links
[local host ](http://127.0.0.1:8000/)
[slack (chat)](https://djangogirlsbdx.slack.com/messages/C59M2P1F0/)
[stackoverflow add -A / add . / add -u ](https://stackoverflow.com/questions/572549/difference-between-git-add-a-and-git-add)
[git add documentation](https://git-scm.com/docs/git-add)
[github](https://github.com/)
[python anywhere](https://www.pythonanywhere.com)
lien vers notre blog: http://notreblog.pythonanywhere.com/
lien vers l'admin du blog : http://notreblog.pythonanywhere.com/admin
**Aller plus loin :**
[extention tutoriel DG](https://github.com/DjangoGirls/tutorial-extensions)
[ressources et exercices en Python](https://github.com/djangogirlsbdx/ressources-et-supports)
---
Interview Sophie/Habib (pour http://les-ethers-fertiles.blog) :
#### -H: Pourquoi tu t'es retrouvé à Django Girls?
-S: Via une amie Clémence de l'association Giroll. Envie d'apprend + sur les langages informatiques. J'ai vu que ça portait sur le language Python, et je n'avais jamais pratiqué.
[URL de l'inscription à l'événement](https://djangogirls.org/bordeaux/)
Sur la page de Django Girls, j'ai été rassuré par leurs discours.
#### -H: Quoi en particulier dans les mots qu'ils utilisaient?
-S: Même sans rien connaitre aux commandes avec le terminal, etc... C'est accessible à toutes et notamment aux débutantes. Ca ne changeait rien pour moi que ce ne soit que des femmes. Les formateurs étaient des hommes d'ailleurs.
Le jour J, on a travaillé en îlots qui semblait formé par niveau: 3 apprentis pour un coach.
#### -H: Quel a été votre moyen de contribution, déchange pendant l'évènement ?
-S: J'ai pris des notes pour documenter ce qu'on se racontait dans notre îlot d'apprenantes:
[notes hack.md](https://hackmd.io/tEOyBG8xRSSQKSb3l5_D2g?view)
Les organisateurs ont aussi ouvert 4 channels de chat (slack) accessibles à tous les membres de l'événement (coachs et apprenants):
- DGBDX 5: les coachs entre eux
- GENERAL: organisation, logistique de l'événement
- TUTORIEL: questions sur les exercices du tutoriel
- RANDOM: tout et n'importe quoi
#### -H: Comment as-tu vécu l'organisation de l'atelier de ton point de vue de participante?
-S:
1) questionnaire de motivations au moment de l'inscription en amont de l'événement.
2) le vendredi soir, 2H d'install de 18h à 20h: des chapitres "Introduction" à l' "installation de Django". Permettait de se confronter aux problèmes particuliers liés aux machines de chacun. Beaucoup d'attention de la part des coachs.
3) le samedi, 9h-18h: Fil rouge: réalisation du tutoriel de réalisation d'une page web en python:
- une application simple et pleinement fonctionnelle
- la publier
- administration du site à plusieurs comptes utilisateurs
le tout en îlots de 3 participantes avec 1 coach. Un espace ravitaillement très sympathique: canelés maison, petits gâteaux, café, thé, et apports faits maison des participants...Une pause le midi oû tout le monde s'est arrêté de coder. Conversations à la volée autour du buffet.
5) Journée entrecoupée de moments d'euphorie, pendant des fenetres de découverte et à chaque fois que tu debugue et que ca marche! Sensation de jouer et de passer des paliers: c'est galvanisant de passer des niveaux comme dans des jeux vidéos de plateforme :-) Le tuto est très bien fait, en invitant à faire des pauses régulières, à aller à son rythme...
6) Fin de journée: on était toutes lessivées après cette journée de sprint qui a mobilisé toute notre attention.
7) Proposition de suivi: à J+7. Permanence mensuelle au coworking space Le Node, pour poursuivre le tutoriel pour celles qui voulaient le terminer et poursuivre en apprenant de nouvelles extensions Django.
Le résultat (tuto pas fini):
http://herehia.pythonanywhere.com/
#### -H: T'avais déjà vécu ce genre d'expérience auparavant?
-S: Non, c'était la première fois. C'était chouette d'être toutes réunies pour le même but.
Mon coach Alexandre était super génial, à l'écoute. On a disgressé sur plein d'autres choses au-delà du tutoriel pour mieux comprendre le contexte, les tenants et aboutissants. Des noms de domaines, à l'html/css, tous ces cocnepts qui étaient assez flous pour moi et qui sont devenus tangibles. Je venais aussi là pour ca. Avoir quelqu'un qui clarifie, en me faisant des dessins, en expliquant par des images... Sans être limité dans les questions: "on parle du tuto et c'est tout!"
#### -H: Et maintenant quoi?
-S: J'ai envie de me poser à nouveau 2 fois 1 demi-journée toute seule, pour boucler le tuto. Et terminer ce jeu! Ou encore 1 journée accompagnée, car c'est trop fastidieux d'être trop longtemps seule face à l'écran : en effet, le processus n'est pas continu entre les demandes d'aide (sur le chat dédié ou par email par exemple) et les délais de réponses. Cela casse la continuité de l'attention.
Il faut dire que c'est un travail hardu de rester motivée seule face à l'exercice. Être à nouveau à plusieurs me donnerait de l'énergie. J'ai envie de recontacter d'autres gens qui étaient à l'événement pour poursuivre. C"est ce qui m'apparait pour l'instant.