Python 使用Flask Admin设置modelview会导致错误
我正在尝试向Flask Admin添加一个用户模型视图。但是,我得到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
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