IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Projet Django accès plusieurs applications [Python 3.X]


Sujet :

Django Python

  1. #1
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut Projet Django accès plusieurs applications
    Bonjour,

    Je me permets de poser une question ici car je vais migrer un projet PHP vers Python avec Django.

    De ce que je comprends un projet Django comprends plusieurs application (startApps nameofapp)

    Et je souhaiterai savoir si ces applications peuvent communiquer entre-elle ?

    Car moi ça serait pour un RPG avec une app pour gérer son compte, une autre pour gérer les combats, une autre pour gérer son inventaire etc..

    L'aroescencre serait donc

    Caranille (Dossier du projet)
    Caranille
    Presentation
    Battle
    Character
    Inventory
    manage.py

    Bien cordialement,

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Bonjour,

    je connais bien le monde des RPG au passage

    Oui, à côté de ton projet Django tu peux avoir plusieurs applications qui sont parfaitement capables de dialoguer entre elles.

    Pour ce faire, tu peux passer par les custom commands. Ce sont des programmes que tu pourras exécuter en ligne de commande (via python manage.py ma_custom_command) ou via ton navigateur.

    Au boulot, par convention on range nos dossiers d'applications dans un dossier /apps à la racine du projet complet. A la création, tu fais toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python manage.py startapp mon_app
    et on déplace à la main le dossier créé dans /apps. Après, plus qu'à faire les bidouilles habituelles dans config.py (je crois) du projet Django pour ajouter les applications. Mais c'est juste une convention que je connais, pas forcément la meilleure. Perso, j'aime bien. Toutes les applications Python sont rangées dans un dossier, avec leurs tests (si tu en fais, je sais pas).

    Dans ton cas, si Caranille est ton projet Django :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    django-admin startproject Caranille .
    python manage.py startapp Presentation
    python manage.py startapp Battle
    python manage.py startapp Character
    python manage.py startapp Inventory
    Perso, chez moi ça donnerait une arborescence comme celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /Caranille
        /apps
            /Battle
            /Character
            /Inventory
            /Presentation
        /Caranille
        manage.py

  3. #3
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Merci beaucoup de votre retour,

    Car dans character il y aura le model de mon personnage et dans battle vu qu'il s'agit d'un combat il utilisera le model de mon character avec ses statistiques (HP, MP etc...) contre un monstre qui lui aussi sera une autre app.

    Mon but est qu'une fois le serveur lancé je puisse avoir plus ou moins le même rendu que ce projet :
    https://github.com/caranille/Caranille

    En gros c'est un site avec Bootstrap qui es un jeu auxquel vous jouez via les menus du haut (Carte du monde pour entrer dans une ville) puis dans la ville vous pouvez rencontrer des monstres à combattre.

    Donc ma question est :

    Vaut-il mieux faire une app pour chaque chose comme l'inventaire, le personnage, les monstres, les combats, les villes, les boutiques etc...

    Ou de tout faire dans le modèle de la racine du projet ?

    Bien cordialement,

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par Caranille Voir le message
    Donc ma question est :

    Vaut-il mieux faire une app pour chaque chose comme l'inventaire, le personnage, les monstres, les combats, les villes, les boutiques etc...

    Ou de tout faire dans le modèle de la racine du projet ?
    Normalement, tu n'as pas de models.py à la racine de ton projet. Pour chaque application Python que tu vas demander de créer, tu auras un fichier models.py qui sera généré et que tu conserveras pour d'éventuelles migrations/migrates ou pas.

    Donc, à toi de voir si tu as besoin d'une application principale + d'autres gravitant autour. Auquel cas mettre tous tes models dans son models.py suffira.

    Ou si tu n'en as pas besoin, auquel cas tu peux générer tes models dans tes applications individuellement.

    A la fin, t'auras juste à ne pas oublier les migrations + migrate pour que ta base de données soit à jour.

  5. #5
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Donc dans ce dossier (qui est celui qui a été crée quand j'ai fais mon projet) je ne met pas mes models ?:
    Nom : Capture d’écran 2021-10-16 164530.png
Affichages : 519
Taille : 29,2 Ko

    Mais je peux juste créer une startapp que je peux nommer game auxquel je met donc tout mon code (Modèle, routes etc...) ?

    Car ce ne sont pas pour moi des applications externe au projet pour moi le projet est un peu sous forme monolithe ^^

    Car dans mon ancien projet j'avais séparé le code :
    https://github.com/caranille/Caranil...e/main/modules

    ça voudrait dire une startapp pour chaque modules ?

    Merci encore de votre aide

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Tout dépend de ce que tu sous-entend en parlant de "projet".

    En dev informatique, un projet est (selon moi) un programme en cours de conception.

    Quand on parle Python/Django, un projet c'est Django lui-même. Les applis Python vont normalement à côté, pas dedans.

    Chaque appli Python générée via startapp aura ses propres fichiers pour être exploitées avec le projet Django. C'est pas utile de faire un truc monolithique où tu vas ranger dans le dossier du projet Django tes applications Python.

  7. #7
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut
    Merci beaucoup de votre aide et pour finir.

    Vaut-il mieux mettre ou pas mettre de majuscule dans le nom d'une application et celui du projet ?

    Car les nomenclatures changent souvent ^^

    Bien cordialement,

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Je crois qu'au boulot, on respecte la PEP8.

    Donc, nom de dossiers en minuscules, nom des programmes en minuscules.

  9. #9
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut
    Merci beaucoup,

    Je vais mettre de topic en résolu

    Bonne soirée à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/12/2018, 08h49
  2. [WD14] Un projet peut-il compter plusieurs applications et exécutable ?
    Par lefooteux dans le forum WinDev
    Réponses: 1
    Dernier message: 15/10/2010, 13h41
  3. Plusieurs applications avec un projet
    Par GCAccess dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/04/2010, 14h18
  4. Projet de deploiement : Selection de plusieurs applications
    Par cosmos38240 dans le forum Visual Studio
    Réponses: 5
    Dernier message: 01/10/2009, 15h15
  5. plusieur application sous websphere
    Par TOPGUN89 dans le forum Websphere
    Réponses: 5
    Dernier message: 09/03/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo