【问题标题】:Twisted web - redirects in requestTwisted web - 在请求中重定向
【发布时间】:2011-11-14 21:01:33
【问题描述】:

我想知道是否可以从扭曲网络中的渲染方法中重定向。

我尝试了各种重定向方式,但只发现在 getChild 方法中使用时记录在案。

基本上,我正在检查用户是否已登录,如果未登录,则将用户转发到不同的资源。

    def render_GET(self, request):
        player = getPlayer(request)
        if player.loggedIn():
            return Redirect("play")
        else:
            return Redirect("login")

我已经翻遍了,但我找不到一个关于扭曲文档的有据可查的例子。

我不确定我是否需要改变我的方法,而且我是扭曲网络的新手。任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: python twisted.web


    【解决方案1】:

    道歉

    经过进一步调查,由于我自己的过错,我忽略了 twisted.web.util 的“redirectTo”方法

    这对我来说非常适合我。只是想我会在这里发布,以防其他人正在寻找相同的答案。

        from twisted.web.util import redirectTo
    
        def render_GET(self, request):
            player = getPlayer(request)
            if player.loggedIn():
                return redirectTo("play")
            else:
                return redirectTo("login")
    

    亲切的问候 乔

    【讨论】:

    • 这对我不起作用。我想知道 Twisted 版本之间的方法是否发生了变化,或者您的代码是否从未工作过? current code 期望你在对redirectTo 的调用中传递一个Request,所以你可以这样做return redirectTo("play", request)
    • @RoundTower 感谢您的帖子。我不再使用 Twisted,但这段代码当时确实对我有用。他们可能更改了 API 中的某些内容。
    • 这不再有效,使用from twisted.web.util import Redirect; return Redirect(url),它是Resource 的子类,redirectTo 返回一个字符串,其中缺少render 方法。 Redirect.render 为您返回 redirectTo。 (扭曲版本 14.0)
    • @RoundTower - 只是为了后代,redirectTo 的新代码位置在这里:github.com/twisted/twisted/blob/trunk/src/twisted/web/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多