flask-appbuilder - 主题示例中的 MyIndexView 错误在 Flask-AppBuilder 中不起作用
问题描述
我从本页https://flask-appbuilder.readthedocs.io/en/latest/customizing.html?highlight=theme的“更改索引”部分实施了步骤 1、2 和 3 。
我收到以下错误:\app__init__.py", line 4, in from app.index import MyIndexView ImportError: cannot import name 'MyIndexView'
我已经对准系统 Flask-AppBuilder 应用程序进行了这些更改。
该代码与网站上显示的完全相同。
我希望这个例子能像描述的那样工作。但是当我运行它时,我收到了上面发布的消息。
解决方案
您的 index.py 应该看起来像这样(基本版本)。
# Import flask functions for redirecting and getting user status
from flask import g, url_for, redirect
# Import IndexView class to overwrite files/redirects and expose to expose custom index view
from flask_appbuilder import IndexView, expose
# File to display custom made different views based off if user is signed
class MyIndexView(IndexView):
# Checking user and redirecting for user when user goes to index view
@expose('/')
def index(self):
# Get user status
user = g.user
# Check user
if user.is_anonymous:
# user is not authenticated and gets redirected to New user page
return redirect(url_for('HomeView.new'))
else:
# user is authenticated and has an account redirect to General page
return redirect(url_for('HomeView.general'))
然后在你的views.py中创建一个像这样的simle视图
# Views for any home paths
class HomeView(BaseView):
# add route base for views as /home
route_base = "/home"
# Route for new or logged out users
@expose('/new')
def new(self):
return self.render_template('new_user.py')
# Route for signed in users or users who want to just view data
@expose('/general')
def general(self):
return self.render_template('my_index.py')
此外,请确保将其添加到您的init .py中的 appbuilder 对象中
appbuilder = AppBuilder(app, db.session, indexview=MyIndexView)
推荐阅读
- c# - 类未注册 HRESULT 异常:0x80040154
- c# - C# 转换日期时间差异与 SQL Server 转换日期时间
- c# - 使用 Imported DataSet 填充 DataGridView
- jhipster - LiquiBase 用于 Jhipster 中的测试
- typescript - 得到正确结果后如何离开循环
- java - 从 Map 创建 Json 字符串
- r - 将具有缺失值的表转换为计数矩阵
- python - 如何序列化作为 XML 导出器中项目列表的 Scrapy 字段
- docker - Docker for Windows - 卷无法正常工作
- sql - 检查行是否存在具有特定值