尝试将我的数据库导入我自己的模块时出现导入错误
I am getting import errors when trying to import my database into my own module
我的 Flask 应用程序中有一个名为 crop.py 的模块。一切都很好,直到我想从 models.py 导入数据库部分。我猜它与将模块初始化到应用程序中然后尝试将模型导入其中有关,但我不确定。
错误如下:
flask.cli.NoAppException:导入时 'test',引发了 ImportError。
这是我的基本应用构建。
-应用程序
models.py
crop.py
crop.py
from app import current_app
from flask import url_for, Markup
import PIL
from PIL import Image
from uuid import uuid4
import os
#Adding these below causes an importerror------------------------------------
#from app import db
#from app.models import Upload
class _Avatars(object):
#code here
class Avatars(object):
def __init__(self, app=None):
if app is not None:
self.init_app(app)
#code here
__init.py
from flask import Flask, request, current_app _l
from elasticsearch import Elasticsearch
from redis import Redis
import rq
from config import Config
#This is my module-----------------------------------------------------
from .crop import Avatars
db = SQLAlchemy()
migrate = Migrate()
avatars = Avatars()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
avatars.init_app(app)
我认为这是导致循环导入错误的原因,因为您在 __init.py 文件中导入裁剪模型,并且将数据库从 __init.py 导入裁剪模型文件。 Python不允许这种情况。您必须在单独的文件中的其他地方定义您的数据库连接,或者在您需要使用数据库的任何地方手动添加它们。
我的 Flask 应用程序中有一个名为 crop.py 的模块。一切都很好,直到我想从 models.py 导入数据库部分。我猜它与将模块初始化到应用程序中然后尝试将模型导入其中有关,但我不确定。
错误如下: flask.cli.NoAppException:导入时 'test',引发了 ImportError。
这是我的基本应用构建。 -应用程序 models.py crop.py
crop.py
from app import current_app
from flask import url_for, Markup
import PIL
from PIL import Image
from uuid import uuid4
import os
#Adding these below causes an importerror------------------------------------
#from app import db
#from app.models import Upload
class _Avatars(object):
#code here
class Avatars(object):
def __init__(self, app=None):
if app is not None:
self.init_app(app)
#code here
__init.py
from flask import Flask, request, current_app _l
from elasticsearch import Elasticsearch
from redis import Redis
import rq
from config import Config
#This is my module-----------------------------------------------------
from .crop import Avatars
db = SQLAlchemy()
migrate = Migrate()
avatars = Avatars()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
avatars.init_app(app)
我认为这是导致循环导入错误的原因,因为您在 __init.py 文件中导入裁剪模型,并且将数据库从 __init.py 导入裁剪模型文件。 Python不允许这种情况。您必须在单独的文件中的其他地方定义您的数据库连接,或者在您需要使用数据库的任何地方手动添加它们。