- Gestion de Python
- Installation du site web
- La maquette
- Répartition du travail
- Organisation du travail
Instructions pour recréer le site web en local.
Afin d'éviter des conflits avec les applications python utilisé par l'OS il est bien d'installer pyenv
qui permet de gérer en parallèle différentes version de python.
Par exemple, Ce website est créer avec python 3.8.2
et vous devriez travailler avec la même version.
Il y a de légère différence entre le pyenv
des linux et le pyenv
de windows. Avec celui de windows il faut gérer ses environnements virtuels séparément avec virtualenv
. Avec le pyenv
de linux virtualenv
est inclus dans pyenv
et s'utilise en faisant
-
Sur linux (famille debian)
Suivre les instruction du projet sur github. En gros
-
S'assurer d'avoir les dépendances pour compiler différentes version de python
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
-
Télécharger et exécuter l'installateur automatique
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
-
Vérifier ses fichiers de config du bash
-
dans .bashrc avoir
eval "$(pyenv init -)"
-
dans .profil avoir
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init --path)" fi
-
-
Redémarrer
pour mettre à jour pour recharger ses fichiers de config
-
-
Pour windows
Suivre les instructions de https://github.com/pyenv-win/pyenv-win
pyenv install 3.8.2
# créer un répertoire pour le dev web
mkdir webdev; cd webdev
# choisir la version python 3.8.2 pour ce dossier (et sous dossier)
pyenv local 3.8.2
# avec linux
pyenv virtualenv webdev
# avec windows
python -m pip install virtualenv
virtualenv .
git clone https://github.com/maliky/aupci.git
Cela va créer un répertoire avec le suivi git.
-
Faciliter les mises à jour git
Ajouter votre clef publique dans votre profil git (voir section sécurité)
- rappel: pour générer la pair de clefs utiliser
ssh-keygen
- rappel: pour générer la pair de clefs utiliser
cd aupci
python -m pip install -r requirements.txt
Le fichier requirements.txt liste simplement les paquets python utilisés par notre projet.
-
Créer la base de donnée
python manage.py migrate
-
Lancer le serveur en local
python manage.py runserver
L'idée c'est dans un premier temps de ne pas partager la base de données (sqlite) mais d'en utiliser une vierge sur chacune de nos machines.
Normalement le site web doit être accessible à l'adresse http://localhost:8000
Il faut le rendre sembable à la maquette.
cd maquette_website
python -m http.server 8888
Ouvrir votre navigateur à l'adresse indiquée (http://localhost:8888/)
Vous verrez que la page de garde est très simple. Je (@malik) me charge de reproduire celle du site contenu dans le dossier `maquette_website`
Pour cela chacun de nous va créer une brange git pour y effectuer son travail. On verra plus tard comment merger le tout avec le site principal
git checkout -b votrenom master
localhost:8000/admin -> point vers un portail d'administration installé par défaut mais dont nous n'avons pas besoin à moins de gérer divers profils d'utilisateurs
Pour la prise en main de django je propose de vous attribuer chacun la responsabilité d'un page web:
-
Les pages
-
Page "Évènement" @Morié
Accessible à aup.ci/evenement
-
Page "Qui Sommes-nous" @Atta
Accessible à aup.ci/qui-somme-nous
-
Page "Contact" @Gnimanssoun
Accessible à aup.ci/contact
-
Page "Adhésion" @Kopoin
Accessible à aup.ci/contact
-
-
Comment les éditer ?
Les fichiers à modifier sont principalement :
-
accueil/urls.py
fait le lien entre l'url et le classe (View) qui contient la logique pour générer la page
-
accueil/views.py
gère la logique de la requête. En gros récupère l'objet HTTPRequest associé à POST, GET, PUT ect. effectue en traitement et appelle un template pour représenter les data
-
accueil/templates/accueil/
C'est le dossier qui contient les templates appelé par les views. On parle de templates, car il y a un mini langage pour par exemple faire un tableau html à partir d'un objet python list. Et puis on peut réutiliser du code comme le fichier base.html (avec les headers)
-
Je propose que l'un d'entre nous regarde la possibilité de faire un site pour pycon par exemple avec flask. On pourrait voir comment reproduire la page d'accueil de aupci avec flask. C'est peut être plus simple et rapide à maîtriser.
C'est évidemment un travail collaboratif, mais pour une efficacité accrue il faut que nous nous mettions tous à peu près au même niveau. Je propose de faire un point physique jeudi prochain à 10h au LARIT pour dénouer les gros blocages. D'ici là chacun devrait se documenter sur django et prendre pour exemple le code de ce dossier simple et fonctionnel.
Le projet django s'appel aupci et l'application accueil.