103 votes

Structure commune de dossiers/fichiers dans une application Flask

Je viens de créer une application flask et jusqu'à présent j'ai un routeur pour mon modèle "Hello world !".

J'aimerais ajouter un peu (beaucoup) plus de fonctionnalités, mais je me demande comment je dois structurer le répertoire des applications.

Quelle est la façon la plus courante de structurer une application Flask ? Par exemple, dois-je créer un routes.py pour tous mes itinéraires ? Où va le matériel de SQLAlchemy ? Les modèles doivent-ils être dans models.py ?

9voto

userx Points 194

La beauté de la gourde réside dans sa flexibilité. Vous pouvez construire facilement une structure de projet semblable à celle de Django. Django a popularisé l'abstraction des fonctionnalités dans les applications et leur réutilisation, mais il peut s'avérer excessif pour de nombreux projets.

Mais avec Flask, tu peux aller dans les deux sens. Écrire des applications réutilisables ou écrire des applications simples. Regardez ces squelettes de cookiecutter -

  1. squelette minimal

    myproject
     config.py
     instance
        config.py
     myproject
        commands.py
        controllers.py
        extensions.py
        forms.py
        __init__.py
        models.py
        routes.py
        ui
            static
               css
                  styles.css
               js
                   custom.js
            templates
                index.html
     README.md
     requirements.txt
     wsgi.py
  2. squelette de type django

    myproject
     config.py
     development.py
     instance
        config.py
     myproject
        auth
           controllers.py
           forms.py
           __init__.py
           models.py
           routes.py
        helpers
           controllers.py
           __init__.py
           models.py
        __init__.py
        ui
            templates
                404.html
                500.html
                base.html
     README.md
     requirements.txt
     tests
        auth
           __init__.py
           test_controllers.py
        __init__.py
     wsgi.py

Il s'agit d'un excellent article sur ce sujet.

5voto

Shankar Points 338

Vous pouvez vous inspirer des modèles d'emporte-pièce proposés ici pour lancer le développement de votre application.

3voto

Manish Meshram Points 93

Voici la structure de base des fichiers pour flask que j'utilise régulièrement.

yourapp/
static/
    js
    css
    img

templates/
    home.html
    index.html

app.py

Le dossier static contient tous les fichiers statiques du site web. Le dossier templates contient toutes les pages HTML. et app.py contient vos vues python.

1voto

panc Points 143

J'ai décidé de nicher le dossier du code source sous src/ .

my_flask_app (project folder)
 app.py
 setup.py
 src/
    my_flask_app/ (source code folder)
       config.py
       errors.py
       forms.py
       __init__.py
       models.py
       routes.py
       static/
       templates/
    my_flask_app.egg-info/
|
 tests/ (test folder)

Pour cette raison, j'ai ajouté package_dir={'': 'src'} sur setup.py .

0voto

Une bonne idée est de chercher des projets de squelettes/template sur github.

par exemple, vous pouvez regarder ceci

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X