Я занимаюсь этим несколько часов, но я боюсь, что я все еще не использую контекст приложения gronk и как мое приложение должно быть реализовано с помощью Blueprints.Флакон Чертежи: RuntimeError Приложение не зарегистрировано в db
Ive посмотрел на this и this и попробовал несколько разных рекомендаций, но в моем базовом подходе должно быть что-то не так.
У меня есть один 'главный' настройки Blueprint по следующей структуре: PJ
project/
app/
main/
__init__.py
routes.py
forms.py
helper.py
admin/
static/
templates/
__init__.py
models.py
приложение/инициализации .py:
from flask import Flask
from config import config
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.bootstrap import Bootstrap
db = SQLAlchemy()
bootstrap = Bootstrap()
def create_app(config_version='default'):
app = Flask(__name__)
app.config.from_object(config[config_version])
bootstrap.init_app(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
db.init_app(app)
return app
приложение/главная/инициализации .py
from flask import Blueprint
main = Blueprint('main',__name__)
from . import routes, helper
приложение/главная/helper.py
#!/usr/bin/env python
from . import main
from ..models import SKU, Category, db
from flask import current_app
def get_categories():
cat_list = []
for cat in db.session.query(Category).all():
cat_list.append((cat.id,cat.category))
return cat_list
Все работало отлично, пока я создал функцию get_categories
в helpers.py
тянуть динамический список для выбора формы в приложение/основной/forms.py. Когда я fireup WSGI, однако, я получаю эту ошибку:
RuntimeError: application not registered on db instance and no application bound to current context
Было бы появиться db
ссылки в помощнике не связан с контекстом приложения, но когда я пытаюсь создать внутри функции, он не работал.
Что я делаю неправильно, и есть ли лучший способ организовать вспомогательные функции при использовании чертежей?
В файле помощника, почему db импортируется из моделей .models? Вы не показываете этот файл здесь, поэтому я не знаю, как он выглядит. – Gohn67