所以我正在使用带有python 2.7的烧瓶0.9。试图偷偷摸摸而没有真正理解我在做什么,我弄乱了我的网址。
我正在使用flask-admin来启动快速界面。这是我做的:
from flask.ext.admin import AdminIndexView
from werkzeug.routing import RequestRedirect
class IndexView(AdminIndexView):
def is_accessible(self):
if current_user.is_authenticated and current_user.has_role('admin'):
return True
else:
raise RequestRedirect('index')
我的目的是让它像烧瓶视图中的返回重定向('index')一样工作,唉它没有按计划工作。它只是在第一次触发后将/ admin总是路由到/ index。
现在,在删除代码并更改raise语句以返回False之后,我的应用程序仍然将/ admin重定向到/ index(即使在不同的虚拟环境中创建了完全不同的应用程序)..
非常感谢任何帮助!
答案 0 :(得分:4)
看起来您的浏览器缓存了重定向。见这里:http://getluky.net/2010/12/14/301-redirects-cannot-be-undon/
不幸的是,RequestRedirect()异常返回301 HTTP状态代码,它将被浏览器缓存。
有一种方法可以做得更好:
is_accessible
用于验证用户是否可以看到某些管理视图。如果您有多个视图,则会为每个视图调用该视图,然后仅显示可见的菜单项_handle_view
方法。您可以在此处查看默认实施:https://github.com/mrjoes/flask-admin/blob/master/flask_admin/base.py#L269 随意返回302状态代码的正确重定向,而不是中止(404)。