Architecture du projet
Organisation générale
Le projet suit une architecture Django modulaire.
La configuration globale reste dans oc_lettings_site tandis que les
fonctionnalités métier sont réparties dans des applications dédiées.
Structure principale
oc_lettings_siteContient la configuration générale du projet Django, les URL principales, la page d’accueil et les pages d’erreur personnalisées.
lettingsGère les adresses et les locations immobilières.
profilesGère les profils associés aux utilisateurs Django.
Répartition des responsabilités
Chaque application contient ses propres éléments Django :
modèles dans
models.py;vues dans
views.py;routes dans
urls.py;tests dans
tests.pyou dans un dossiertests;migrations dans le dossier
migrations;modèles HTML dans le dossier
templates.
Routage des URL
Le fichier oc_lettings_site/urls.py centralise les routes principales et
inclut les routes propres aux applications lettings et profiles.
Chaque application possède ainsi son propre fichier urls.py afin de limiter
le couplage entre les fonctionnalités.
Flux d’une requête
Lorsqu’un utilisateur accède à une page :
Django analyse l’URL demandée ;
la route correspondante appelle une vue ;
la vue récupère les données nécessaires depuis les modèles ;
la vue transmet ces données à un template ;
Django génère puis retourne la réponse HTML.
Architecture modulaire
La séparation en applications permet :
d’isoler les responsabilités ;
de faciliter la maintenance ;
de limiter les dépendances entre fonctionnalités ;
de simplifier les tests ;
de faire évoluer une application sans modifier les autres.
Migration depuis l’ancienne architecture
Les modèles autrefois regroupés dans oc_lettings_site ont été déplacés
dans les applications lettings et profiles.
Des migrations de données ont été utilisées pour copier les enregistrements existants vers les nouvelles tables tout en conservant leurs identifiants et leurs relations.