我有一个烧瓶应用程序,我正在尝试在其中使用
flask-admin
。我安装了 flask-admin
并在我的 __init__.py
文件中初始化了它。
__init__.py
:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from cms.config import Config
db = SQLAlchemy()
admin = Admin()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
admin.init_app(app)
from cms.main.routes import main
app.register_blueprint(main)
return app
然后在我的
models.py
中,我将一个模型添加到管理视图中。
models.py
:
from flask_admin.contrib.sqla import ModelView
from cms import db, admin
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
def __str__(self):
return self.username
admin.add_view(ModelView(User, db.session))
但这不会在管理视图中显示“用户”选项卡。管理视图中只有“主页”选项卡。我在这里缺少什么?
默认情况下,Flask-Admin 使用蓝图作为其路由。确保您已在应用程序中注册 Flask-Admin 蓝图。您可以通过修改您的
来做到这一点init.py
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
admin = Admin()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(Config)
# ...
admin.init_app(app)
# Import your model and add it to the admin view
from cms.models import User
admin.add_view(ModelView(User, db.session))
# ...
return app