#python #flask
Вопрос:
Я пытаюсь создать приложение flask, и у меня возникают проблемы с запуском базы данных. Я не получаю никаких ошибок, но моя база данных не заполняется. Код, который у меня есть в главном __init.py
файле, показан ниже:
from flask import Flask
from extensions import db
from home.routes import home
from search.routes import search
def create_app():
app = Flask(__name__)
if app.config["ENV"] == "production":
app.config.from_object("config.ProductionConfig")
print("ENV IS SET TO PRODUCTION")
elif app.config["ENV"] == "development":
app.config.from_object("config.DevelopmentConfig")
app.register_blueprint(home)
app.register_blueprint(search)
with app.app_context():
db.init_app(app)
db.create_all()
return app
Я пытался запустить приложение из командной строки, но всякий раз, когда я импортирую базу данных и выполняю db.create_all()
, я просто получаю RuntimeError: No application found. Either work inside a view function or push an application context
Я осмотрелся, и многие люди публикуют app.app_context()
решение, но, похоже, оно не работает для моего варианта использования. Я пытаюсь понять, какова цель контекстного менеджера, но у меня возникли некоторые проблемы, и я не знаю, почему база данных не будет создана.
Комментарии:
1. У меня была та же проблема, я использую интерфейс командной строки python, импортировал базу данных и использовал
app_context()
, и это сработало, я не знаю, как вы работаете, если бы вы дали ссылку на github или что-то еще, может быть, я смогу это понять.