- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Flask App builder 制作一个基本网页。我想根据登录用户更改默认登录页面例如用户 1 应该被重定向到/home/user1 页面,用户 2 应该在登录后登录到/home/general 页面等。
下面是我的自定义索引 View
class MyIndexView(IndexView):
index_template = 'index.html'
@expose('/')
def main(self):
return redirect(url_for('AuthDBView.login'))
@expose('/index')
def index(self):
return self.render_template('index.html', message="Welcome to my website")
并通过调用
启动应用程序appbuilder = AppBuilder(app, db.session, indexview=MyIndexView)
我还没有看到有关如何实现此目的的任何示例或文档。非常感谢任何帮助
最佳答案
首先,Flask-AppBuilder 依赖于 Flask-login管理用户,因此您可能需要阅读其文档。
除此之外,Flask-AppBuilder 在每个请求之前将 current_user
(已验证或匿名)注入(inject)到 Flask 的 g
变量中,因此您所要做的就是从g
变量并用它做你想做的事。
下面是一个将匿名用户(未登录)重定向到登录页面的 IndexView 示例。
如果用户不是匿名用户且其名称为 John,则它会被重定向到 HomeView.user
端点。
如果它的名字不是 John,它会被重定向到 HomeView.general
端点。
索引.py
from flask import g, url_for, redirect
from flask_appbuilder import IndexView, expose
class MyIndexView(IndexView):
@expose('/')
def index(self):
user = g.user
if user.is_anonymous:
return redirect(url_for('AuthDBView.login'))
else:
if user.first_name == 'John':
return redirect(url_for('HomeView.user'))
else:
return redirect(url_for('HomeView.general'))
内部 views.py
class HomeView(BaseView):
route_base = "/home"
@expose('/user/')
def user(self):
greeting = "Hello John"
return self.render_template('logged_user.html', greeting=greeting)
@ expose('/general/')
def general(self):
greeting = "Hello ordinary user"
return self.render_template('logged_user.html', greeting=greeting)
appbuilder.add_view_no_menu(HomeView())
关于python - Flask-Appbuilder 根据用户更改默认登陆页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43016435/
下午好试图在我着陆时做出响应式背景,但出于某种原因我不能我试图使用 height: auto, height: 100% 和 margin: 0 auto;高度 100% 有效,但它没有覆盖到我的屏幕
我正在为 Rails 应用程序创建启动页面,其中包含一个电子邮件字段供用户填写并在网站完全启动时收到通知。 最好的方法是什么? 我应该为着陆页创建一个新的应用程序还是我应该使用同一个应用程序并设置一些
按照 官方教程 ,下载安装包,点击安装后,如需在命令行启动,还需设置命令路径: 在命令行中,打开配置文件 .bash_profile: vim ~/.bash_profile 在最后一行加上:
1、登录数据库,在数据库中创建表user00,并且插入数据。 表的字段分别为: id(编号)、name(姓名)、grid(级别)、score(积分)、password(密码)、age(年龄)、
我是 cocoa 开发的新手。 当我使用 Storyboard在 Xcode 上创建一个新项目时,它使用我更喜欢的 iOS 模型,即拥有一个 viewController 和一个委托(delegate
我是一名优秀的程序员,十分优秀!