最简单的方法是添加一个菜单链接并保留管理主页(您将来可能想要添加仪表板或类似的东西):
from flask_admin.menu import MenuLink
# Create admin
admin = Admin(app, name='Admin', url='/')
admin.add_view(ImageView(model=Image, session=db.session, category='Database', name='Images'))
# Add custom link to public website home page
admin.add_link(MenuLink(name='Public Website', category='', url=url_for('main.home')))
注意,url_for 需要在 Flask 应用程序上下文中调用。例如,如果使用 Flask 应用程序工厂模式,则如下所示:
def create_app(config):
app = App('app')
# setup config
# setup blueprints
# setup Flask-Admin
from app.admin import create_admin
from app.admin.configure import configure_admin
with app.app_context():
admin = create_admin(app=app)
configure_admin(app, admin)
# more stuff
return app
__init__.py 在 app.admin 模块中
def create_admin(app=None):
return Admin(app, template_mode='bootstrap3')
configure.py 在 app.admin 模块中
def configure_admin(app, admin):
# setup views
# add link to home page
admin.add_link(MenuLink(name='Public Website', category='', url=url_for('home.HomeView:index')))