" lors de l'exécution de "flask db init" - Retrouvez les réponses et les commentaires concernant cette question" />
3
votes

Vous avez "KeyError: " lors de l'exécution de "flask db init"

Nouveau sur python ici. Travailler sur un projet de base à l'aide de l'édition communautaire PyCharm à partir de CRUD-PythonFlask le site. Lors de l'exécution des étapes de migration, des erreurs ont été commises comme ci-dessous après la commande flask db init :

# app/__init__.py

# third-party imports
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_migrate import Migrate

 # local imports
 from config import app_config

 # db variable initialization
 db = SQLAlchemy()
 login_manager = LoginManager()


 def create_app(config_name):
     app = Flask(__name__, instance_relative_config=True)
     app.config.from_object(app_config[config_name])
     app.config.from_pyfile('config.py')
     db.init_app(app)

     login_manager.init_app(app)
     login_manager.login_message = "You must be logged in to access this page."
     login_manager.login_view = "auth.login"

     migrate = Migrate(app, db)

     from app import models

     # temporary route
     @app.route('/')
     def hello_world():
         return 'Hello, World!'

     return app

__init__.py file:

XXX

Besoin d'aide pour trier le problème. Toute aide est appréciée.


4 commentaires

github.com/miguelgrinberg/Flask-Migrate/issues/…?


merci @RajaSimon !! Ça m'a aidé!


Veuillez créer une nouvelle réponse ici pour les futurs utilisateurs.


Vérifiez et assurez-vous que votre script principal se trouve dans le répertoire approprié (normalement au même niveau que le dossier de l'application). Ensuite, accédez au répertoire contenant le fichier de script principal et exécutez: $ export FLASK_APP =


4 Réponses :


0
votes

Je ne pense pas que le problème réside dans l'initialisation de la variable db. Assurez-vous que votre environnement virtuel se trouve dans le dossier de votre projet flask


0 commentaires

9
votes

J'ai vécu cela lors de l'utilisation d'un fichier python pour la variable d'environnement FLASK_APP, plutôt que d'utiliser un module (ou une application dans la terminologie flask), c'est-à-dire:

$ export FLASK_APP=flask_app:app

au lieu de

$ export FLASK_APP=flask_app.py

Je pense que vous manquez peut-être complètement le FLASK_APP, avec flask db init présentant ce comportement.


1 commentaires

J'avais le même problème et cela l'a résolu. Merci beaucoup!



1
votes

Supprimez la ligne ## app.config.from_object (app_config [config_name]) de votre code et elle commencera à fonctionner.


0 commentaires

0
votes

Votre éditeur pycharm définit la cible sur flask.py, peut-être que la vôtre n'est pas flask.py ou autre, mais ce ne sera pas __init__.py


0 commentaires