Python Web框架Sanic response redirect() 函数用法和示例

发表时间:2020-02-18

response.redirect() 功能: Sanic 返回一个重定向URL让浏览器去访问。它是通过在响应头headers里面设置 Location 来实现的。

Sanic response.redirect() 函数

response.redirect() 语法

def redirect(
    to,
    headers=None, 
    status=302,
    content_type="text/html; charset=utf-8"
):

response.redirect() 参数

  • to:响应要返回的重定向URL字符串;
  • status:默认 http 状态码302,正常返回不要修改;
  • headers:自定义 http 响应头;
  • content_type:HTTP 响应头的 content type,不要修改;

这里面, to 是必需的参数,可以通过传入 headers 来自定义响应头,其它参数不要修改。
比如,自定义响应头headers:


return redirect(
    'https://www.yuanrenxue.com/',
    headers={'X-Serverd-By': 'YuanRenXue Python'}
)

response.redirect() 返回值

返回一个 HTTPResponse 类的实例。这个实例通过设置headers的 Location to 告诉浏览器重定向,它只包含HTTP 响应头,不包含响应体。

response.redirect() 例子

from sanic import Sanic
from sanic import response


app = Sanic()


@app.route('/redirect')
async def redirect(request):
    return response.redirect(
        'https://www.yuanrenxue.com/',
        headers={'X-Serverd-By': 'YuanRenXue Python'}
    )


if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8888, debug=True)

通过 curl 来查看redirect响应:

curl -i http://127.0.0.1:8888/redirect

结果如下,可以看到我们自定义的headers X-Serverd-By: YuanRenXue Python


HTTP/1.1 302 Found
Connection: keep-alive
Keep-Alive: 5
X-Serverd-By: YuanRenXue Python
Location: https://www.yuanrenxue.com/
Content-Length: 0
Content-Type: text/html; charset=utf-8

请注意 HTTP/1.1 302 Found Location 与其它响应函数的不同。

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free