在佛罗里达重新定向

2024-04-28 22:46:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为Item的DB表。项具有status属性,该属性可以是

new
todo
doing
done

在我的网站上,我有两个显示项目表的视图。

  • 视图1显示所有项(带有状态列)。
  • 视图2仅显示状态为todo的项。

根据项目状态,用户可以执行某些操作(“移动到待办事项”、“移动到待办事项”、“移动到已完成事项”)。

如果考虑视图1和视图2,它们都有一个共同点,即它们都包含状态为todo的项。所以在两者上我都有一个链接到一个名为

/Item/<id>/moveToDoing

其中id-Item的状态设置为“doing”。

现在我希望用户被重定向回他单击按钮的位置(视图1或视图2)。

我的问题是:

  1. 用烧瓶怎么办?我觉得 http://flask.pocoo.org/snippets/62/不是我所需要的, 因为我在这里没有一个公式的POST请求。(我应该吗?)
  2. 我这样做是正确的还是有一个惯例,通常如何解决?

Tags: 用户视图idnewdb属性网站状态
1条回答
网友
1楼 · 发布于 2024-04-28 22:46:36

我正在使用此处推荐的helper函数:http://flask.pocoo.org/docs/reqcontext/

def redirect_url(default='index'):
    return request.args.get('next') or \
           request.referrer or \
           url_for(default)

在视图中使用它

def some_view():
    # some action
    return redirect(redirect_url())

如果没有任何参数,它将把用户重定向回他来自的地方(request.referrer)。 您可以添加get参数next来指定url。例如,这对oauth很有用。

instagram.authorize(callback=url_for(".oauth_authorized",
                                                next=redirect_url(),
                                                _external=True))

我还添加了一个默认视图,如果出于某种原因不应该有推荐人

重定向url('.another_view')

你链接的代码片段基本上做了相同的工作,但通过确保你不能被重定向到另一个主机上的恶意攻击者的页面,它更加安全。

相关问题 更多 >