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
Suivre les instruction du projet sur github. En gros
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
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
eval "$(pyenv init -)"
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
pour mettre à jour pour recharger ses fichiers de config
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.
Ajouter votre clef publique dans votre profil git (voir section sécurité)
- rappel
- pour générer la pair de clefs utiliser
ssh-keygen
cd aupci
python -m pip install -r requirements.txt
Le fichier requirements.txt liste simplement les paquets python utilisés par notre projet.
python manage.py migrate
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`
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
Il faut distinguer le projet django qui s’appelle aupci et l’application accueil
Pour la prise en main du projet, je propose de vous attribuer chacun la responsabilité d’un page web. Le but est de reproduire avec django ce que nous voyons sur la maquette
Accessible à aup.ci/evenement
Accessible à aup.ci/qui-somme-nous
Accessible à aup.ci/contact
Accessible à aup.ci/contact
Les fichiers à modifier sont principalement :
fait le lien entre l’url et le classe (View) qui contient la logique pour générer la page
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
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.
Pour faire ses modifications et ses tests chacun devrait créer une brange git et y effectuer son travail. On verra plus tard comment merger le tout avec le site principal
git checkout -b nom_de_votre_branche master