Я создаю объект Python, который все статические данные в БД.Я хотел бы иметь один экземпляр этого в Приложении, к которому я могу получить доступ, используя переменную «import».В коде у меня происходит несколько запросов к БД, но как только я использую "country.query.all ()", я получаю ошибку времени выполнения.
Я пытался использовать с app.app_context () только для того, чтобы получить сообщение «Ошибка: ошибка импорта: невозможно импортировать имя« api »из« App.api.routes »Редактировать: я использую синие отпечатки, поэтомувы увидите App.api.routes
getinfo.py
def create():
class Country:
def __init__(self,id, name,iso):
self.id= id
self.name = name
self.iso = iso
self.providers = get_providers_by_id(id)
class Provider:
def __init__(self, id, name):
self.id = id
self.name = name
self.products = get_product_by_id(id)
b = []
countries = country.query.all()
for row in countries:
b.append(Country(row.id, row.name,row.iso))
return b
items = create()
routes.py
From App.getinfo import items
Error: RuntimeError: No application found. Either work inside a view function or push an application context. countries = country.query.all()
getinfo.py (changes to try to fix)
app = create_app()
with app.app_context():
items= create()
Error: ImportError: cannot import name 'api' from 'App.api.routes'
Я надеюсь, что эта проблема не возникнет, и у меня будет возможность использовать переменную "items" в качестве экземпляра в моих маршрутах.
Редактировать # 2: пробовал с помощью current_app
getinfo.py (Try to fix #2)
from flask import current_app
with current_app.app_context():
test = create()
RuntimeError: Working outside of application context.
This typically means that you attempted to use functionality that needed
to interface with the current application object in some way. To solve
this, set up an application context with app.app_context(). See the
documentation for more information.