Partage
  • Partager sur Facebook
  • Partager sur Twitter

[FLASK] problème creation base de donnée

    19 juin 2020 à 12:44:12

    Bonjour tout le monde, je coince sur la partie 3 du cours flask pour créer la base de donnée.

    Quand j’exécute les commande suivantes (je suis sous Windows):

    set FLASK_APP=run.py
    flask init_db

     J'obtiens l'erreur :

    Error: No such command 'init_db'.

    Je sais que ce problème a déjà été abordé et qu'une solution a été trouvé, mais malheureusement elle ne fonctionne pas chez moi.

    Je suis allé chercher le code du cours sur github afin d'être sûr de pas avoir fait une faute de frappe, mais rien n'y fait.

    Voici les codes:

    fbapp/__init__.py

    ...
    # Solution proposée
    @app.cli.command("init_db")
    def init_db():
        models.init_db()

     fbapp/models.py

    ...
    def init_db():
        db.drop_all()
        db.create_all()
        db.session.add(Content("THIS IS SPARTAAAAAAA!!!", 1))
        db.session.add(Content("What's your favorite scary movie?", 0))
        db.session.commit()
        lg.warning('Database initialized!')

    -
    Edité par TutrleWarrior 19 juin 2020 à 20:59:41

    • Partager sur Facebook
    • Partager sur Twitter
    Parce qu'une tortue peut battre un lièvre, il ne faut jamais baisser les bras ;)
      19 juin 2020 à 14:02:44

      Bonjour,

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : probleme cours flask)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2020 à 17:28:08

        Tu importes ton models.py de cette manière ? from . import models

        • Partager sur Facebook
        • Partager sur Twitter

        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

          19 juin 2020 à 21:00:22

          fred1599 a écrit:

          Tu importes ton models.py de cette manière ? from . import models


          effectivement, comme c'est indiqué dans le cours

          -
          Edité par TutrleWarrior 19 juin 2020 à 21:00:48

          • Partager sur Facebook
          • Partager sur Twitter
          Parce qu'une tortue peut battre un lièvre, il ne faut jamais baisser les bras ;)
            20 juin 2020 à 11:50:08

            Tu es dans un environnement virtuel ?  si tu fais flask --help, as tu un message d'erreur ?

            Si oui, il faut installer flask dans ton environnement.

            Démarres-tu cette commande depuis le répertoire du projet ?

            -
            Edité par fred1599 20 juin 2020 à 11:51:49

            • Partager sur Facebook
            • Partager sur Twitter

            Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
            La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

              24 juin 2020 à 15:30:19

              Tout d'abords, désolé pour la réponse tardive, j'ai eu beaucoup de boulot ses derniers jours.

              Voilà la sortie de flask --help dans l'environnement virtuel :

              (env) W:\dev\Python\flask>set FLASK_APP=run.py
              
              (env) W:\dev\Python\flask>flask --help
              \\...\flask\env\lib\site-packages\flask_sqlalchemy\__init__.py:833: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
                warnings.warn(FSADeprecationWarning(
              \\...\flask\env\lib\site-packages\flask_sqlalchemy\__init__.py:833: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
                warnings.warn(FSADeprecationWarning(
              Usage: flask [OPTIONS] COMMAND [ARGS]...
              
                A general utility script for Flask applications.
              
                Provides commands from Flask, extensions, and the application. Loads the
                application defined in the FLASK_APP environment variable, or from a
                wsgi.py file. Setting the FLASK_ENV environment variable to 'development'
                will enable debug mode.
              
                  > set FLASK_APP=hello.py
                  > set FLASK_ENV=development
                  > flask run
              
              Options:
                --version  Show the flask version
                --help     Show this message and exit.
              
              Commands:
                init_db
                routes   Show the routes for the app.
                run      Run a development server.
                shell    Run a shell in the app context.

               Les erreurs proviennent de SQLALCHEMY, mais pour le reste Flask semble fonctionner normalement ....

              Est-ce que je dois quand même l'installer en local ?

              -
              Edité par TutrleWarrior 24 juin 2020 à 15:31:37

              • Partager sur Facebook
              • Partager sur Twitter
              Parce qu'une tortue peut battre un lièvre, il ne faut jamais baisser les bras ;)
                24 juin 2020 à 17:12:15

                On te propose init_db, tu l'exécutes bien à cet endroit ou à l'endroit où se trouve la racine de ton projet ?
                • Partager sur Facebook
                • Partager sur Twitter

                Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                  26 juin 2020 à 8:22:53

                  Pourtant je l'exécute bien à cet endroit ....
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Parce qu'une tortue peut battre un lièvre, il ne faut jamais baisser les bras ;)
                    26 juin 2020 à 8:34:13

                    Je serai toi je reprendrai le projet au propre en partant d'un environnement virtuel vide et que tu complètes avec ton fichier requirements.txt.

                    Ça prend 5 minutes et tu pars sur de bonnes bases.

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                      26 juin 2020 à 17:23:15

                      Avant de faire tout ça as-tu déjà initialiser un base de donnée en fessant un
                      from le nom de ton fichier import db
                      
                      db.create_all()
                      
                      

                      dans shell python

                      (le plus facile c'est d' ouvrir une invite de commande , aller dans le bon offertoire avec un "cd ton répertoire" et d'écrire "python"

                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 février 2021 à 11:26:29

                        Bonjour

                        reponse un peu tardive

                        la bonne commande sous windows c'est flask init-db  

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Vous n'échouez qu'au moment ou vous arrêtez d'essayer. (Albert Einstein)

                        [FLASK] problème creation base de donnée

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown