Python 使用Flask Admin设置modelview会导致错误

Python 使用Flask Admin设置modelview会导致错误,python,flask,flask-sqlalchemy,flask-admin,Python,Flask,Flask Sqlalchemy,Flask Admin,我正在尝试向Flask Admin添加一个用户模型视图。但是,我得到importorror:无法导入name db。为什么会发生这种情况,我该如何解决 app/\uuuuu init\uuuuuuuuuuuuupy: from flask import Flask from flask_sqlalchemy import SQLAlchemy import flask_admin as admin from app.models import User db = SQLAlchemy() ad

我正在尝试向Flask Admin添加一个用户模型视图。但是,我得到
importorror:无法导入name db
。为什么会发生这种情况,我该如何解决

app/\uuuuu init\uuuuuuuuuuuuupy

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import flask_admin as admin
from app.models import User

db = SQLAlchemy()
admin = admin.Admin(name="Admin Panel")

def create_app(config_name):
    app = Flask(__name__)
    db.init_app(app)
    admin.init_app(app)
    admin.add_view(ModelView(User, db.session))
    return app
from . import db, login_manager

class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
app/models.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import flask_admin as admin
from app.models import User

db = SQLAlchemy()
admin = admin.Admin(name="Admin Panel")

def create_app(config_name):
    app = Flask(__name__)
    db.init_app(app)
    admin.init_app(app)
    admin.add_view(ModelView(User, db.session))
    return app
from . import db, login_manager

class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
当我添加
admin.add\u视图(ModelView(User,db.session))
时,我还必须从app.models导入User添加
。我在添加以下行后出现此错误:

Traceback (most recent call last):
      File "manage.py", line 3, in <module>
        from app.models import User, Role
      File "/home/qadim/PycharmProjects/esouq/app/__init__.py", line 1, in <module>
        from app.models import User
      File "/home/qadim/PycharmProjects/esouq/app/models.py", line 9, in <module>
        from . import db, login_manager
    ImportError: cannot import name db
回溯(最近一次呼叫最后一次):
文件“manage.py”,第3行,在
从app.models导入用户、角色
文件“/home/qadim/PycharmProjects/esouq/app/_init__.py”,第1行,在
从app.models导入用户
文件“/home/qadim/PycharmProjects/esouq/app/models.py”,第9行,在
从…起导入数据库,登录\u管理器
ImportError:无法导入名称数据库

您的代码在
\uuuu init\uuuuu.py
中有app.models import User
中的行
。问题在于
app.models
具有来自的
。导入数据库
。这是一个循环导入:
\uuuuu init\uuuu
尝试导入
用户
,它尝试导入
数据库
,直到
\uuuuu init\uuuu
尝试导入
用户
之后才定义。要解决此问题,请将本地应用程序导入移到所有全局扩展内容的定义之下

目前,您的代码看起来像:

from flask_sqlalchemy import SQLAlchemy
from app.models import User

db = SQLAlchemy()
您需要将其更改为:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

from app.models import User