我很困惑为什么我无法从我的基本模板访问我的flask-admin登录和注销页面。有人可以帮助我吗?
这是我在github上找到的一个例子中稍微修改了我的flask-admin代码:
class MyAdminIndexView(AdminIndexView):
@expose('/')
def index(self):
if not flask_login.current_user.is_authenticated:
return redirect(url_for('.login_view'))
return super(MyAdminIndexView, self).index()
@expose('/login/', methods=('GET', 'POST'))
def login_view(self):
form = LoginForm(request.form)
if helpers.validate_form_on_submit(form):
user = form.get_user()
flask_login.login_user(user)
if flask_login.current_user.is_authenticated:
return redirect(url_for('.index'))
self._template_args['form'] = form
return super(MyAdminIndexView, self).index()
@expose('/logout/')
def logout_view(self):
flask_login.logout_user()
return redirect(url_for('.login_view'))
admin = Admin(app,name =' BlackDuck Flock',index_view = MyAdminIndexView(),template_mode =' bootstrap3')
我无法弄清楚如何从templates/index.html
我在导航栏的视图中尝试了这些选项:
<ul class="nav navbar-nav navbar-right">
<li><a href={{ url_for('.login_vew') }}>Login</a></li>
<li><a href={{ url_for('.logout_view') }}>Logout</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href={{ url_for('admin.login_vew') }}>Login</a></li>
<li><a href={{ url_for('admin.logout_view') }}>Logout</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href={{ url_for('/login_vew') }}>Login</a></li>
<li><a href={{ url_for('/logout_view') }}>Logout</a></li>
</ul>
# At this point I'm guessing now......
<ul class="nav navbar-nav navbar-right">
<li><a href={{ url_for('/admin/login') }}>Login</a></li>
<li><a href={{ url_for('./admin/logout') }}>Logout</a></li>
</ul>
我做错了什么?
答案 0 :(得分:0)
我找到了解决方案。基本上我需要做的就是为管理界面创建一个环绕,如下所示:
@app.route('/login')
def login():
return redirect(url_for('admin.login_view'))
@app.route('/logout')
def logout():
return redirect(url_for('admin.logout_view'))