Démarrage rapide#
Documentation avec readthedocs:
Projet 13 du parcours OpenClassrooms Développeur d’application - Python
Résumé#
Orange County Lettings est une start-up dans le secteur de la location de biens immobiliers. La start-up est en pleine phase d’expansion aux États-Unis.
L’objectif de ce projet est :
de mettre à l’échelle une application Django en utilisant une architecture modulaire.
La réduction de divers problèmes technique. Et du coup une mise en place de test, voir de les automatiser est organisé.
Surveillance de l’application et suivi des erreurs via Sentry.
Mettre en place un pipeline CI/CD et le déploiement du site web vers un hébergeur.(Azure de choisi).
Ainsi qu’une documentation publiée en ligne sur le site readthedocs.io.
Plusieurs domaines du site OC Lettings ont été améliorés à partir du projet d’OpenClassrooms forker et cloner depuis l’adresse suivante : Python-OC-Lettings-FR.
Avec le Cahier des charges site 2.0.
Développement local#
- Prérequis#
Compte GitHub avec accès en lecture à ce repository
SQLite3 CLI *incorporé à Django ou avec son IDE
Interpréteur Python, version 3.11 minimum
Dans le reste de la documentation sur le développement local, il est supposé que la commande python de votre OS shell exécute l’interpréteur Python ci-dessus (à moins qu’un environnement virtuel ne soit activé).
- macOS / Linux#
Cloner le repository#
cd /path/to/put/project/ingit clone https://github.com/OpenClassrooms-Student-Center/Python-OC-Lettings-FR.git
Créer l’environnement virtuel#
cd /path/to/Python-OC-Lettings-FRpython -m venv venvapt-get install python3-venv(Si l’étape précédente comporte des erreurs avec un paquet non trouvé sur Ubuntu)Activer l’environnement
source venv/bin/activateConfirmer que la commande
pythonexécute l’interpréteur Python dans l’environnement virtuelwhich pythonConfirmer que la version de l’interpréteur Python est la version 3.6 ou supérieure
python --versionConfirmer que la commande
pipexécute l’exécutable pip dans l’environnement virtuel,which pipPour désactiver l’environnement,
deactivate
Exécuter le site#
cd /path/to/Python-OC-Lettings-FRsource venv/bin/activatepip install --requirement requirements.txtpython manage.py runserverAller sur
http://localhost:8000dans un navigateur.Confirmer que le site fonctionne et qu’il est possible de naviguer (vous devriez voir plusieurs profils et locations).
Linting#
cd /path/to/Python-OC-Lettings-FRsource venv/bin/activateflake8
Tests unitaires#
cd /path/to/Python-OC-Lettings-FRsource venv/bin/activatepytest
Base de données#
cd /path/to/Python-OC-Lettings-FROuvrir une session shell
sqlite3Se connecter à la base de données
.open oc-lettings-site.sqlite3Afficher les tables dans la base de données
.tablesAfficher les colonnes dans le tableau des profils,
pragma table_info(Python-OC-Lettings-FR_profile);Lancer une requête sur la table des profils,
select user_id, favorite_city from Python-OC-Lettings-FR_profile where favorite_city like 'B%';.quitpour quitter
Panel d’administration#
Aller sur
http://localhost:8000/adminConnectez-vous avec l’utilisateur
admin, mot de passeAbc1234!
- Windows#
Utilisation de PowerShell, comme ci-dessus sauf :
Pour activer l’environnement virtuel,
.\venv\Scripts\Activate.ps1Remplacer
which <my-command>par(Get-Command <my-command>).Path
Variables d’environnements#
Afin que le déploiement se réalise, et que le site puisse via Django être sécurisé, il y a plusieurs variables d’environnements misent en place. Ici se trouve juste la liste exhaustive, pour de plus ample explication, voir dans la documentation.
- En locale#
Utilisé par Django pour le setup dans settings.py :
Il y a la clé secréte de Django pour la sécurité. Et la clé DSN afin d’avoir toute la journalisation centralisé sur Sentry.
Ps : la variable d’environnement DEBUG, n’est utile qu’en local, et s’il faut activer le mode débogage de Django.
sous windows :
$Env:SECRET_KEY = "yourKeyKeepInSafe"$Env:DSN = "https://number.ingest.sentry.io/number**$Env:DEBUG = "True"**sous Linux :
export SECRET_KEY="yourKeyKeepInSafe"de même avec DSN, et voir DEBUG.
sous Apple :
% SECRET_KEY="yourKeyKeepInSafe"de même avec DSN, et voir DEBUG.
- En production#
Via GitHub, d’autre variables sont utilisé pour le déploiement vers Azure, aussi bien pour se connecter à Docker et le passage à l’environnement final, avec le maximum de sécurité pour ces variables. Sur GitHub, il existe des variables « secrets » afin de garantir la confidentialité dans les fichiers log.

variable lié à Azure :
APP_NAME : nom de l’application
RESOURCE_GROUP : nom du groupe de ressource utilisé pour la facturation
AZUREAPPSERVICE_PUBLISHPROFILE_ORANGE : contenu du profil de publication
AZURE_CREDENTIALS : voir GitHub Action for Azure Login
variable lié à Docker :
DOCKER_PASSWORD : Access token avec des droits d’écriture et lecture
DOCKER_REPOSITORY : nom du repository
DOCKER_USERNAME : nom du namespace
et on retrouve SECRET_KEY et DSN afin de les passer au build final.
Technologies#
Conventions de nommage et de codes :#
PEP 8 – Style Guide for Python Code ici.
Un rapport flake8 au format HTML est disponible dans le repertoire \reports\flake8, dans la branche badges.
PS : De cliquer sur les badges ou le nom du projet vous dirige vers les rapports des tests, ou le site concerné pour la documentation