Перенаправление на URL-адрес в колбу



Я новичок в Python и Flask, и я пытаюсь сделать эквивалент Response.redirect а в C# - ie: перенаправление на определенный URL - как мне это сделать?



вот мой код:



import os
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
return 'Hello World!'

if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
615   5  

5 ответов:

вы должны вернуть редирект

import os
from flask import Flask,redirect

app = Flask(__name__)

@app.route('/')
def hello():
    return redirect("http://www.example.com", code=302)

if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

см. [документация по Flask docs]( http://flask.pocoo.org/docs/1.0/api/#flask.redirect) значение по умолчанию для кода равно 302 so code=302 может быть опущен или заменен на другой код редиректа (в 301, 302, 303, 305 и 307)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
from flask import Flask, redirect, url_for

app = Flask(__name__)

@app.route('/')
def hello():
    return redirect(url_for('foo'))

@app.route('/foo')
def foo():
    return 'Hello Foo!'

if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

посмотри пример в документации.

С Flask API Documentation (v. 0.10):

фляга.редирект(location,code=302,Response=None)

возвращает объект ответа (приложение WSGI), который при вызове перенаправляет клиента в целевое расположение. Поддерживаемые коды 301, 302, 303, 305 и 307. 300 не поддерживается, потому что это не реальное перенаправление и 304, потому что это ответ на запрос с запросом с определенным If-Modified-Since заголовки.

новое в версии 0.6: расположение теперь может быть строкой Юникода, которая является кодируется с помощью функции iri_to_uri ().

параметры:

  • location - место, куда должен перенаправляться ответ.
  • code – код статуса системы. по умолчанию 302.
  • Response (класс) – класс ответа, используемый при создании экземпляра ответа. Значение по умолчанию-сверла.обертки.Ответ если неопределенный.

Я считаю, что этот вопрос заслуживает обновленный: просто взгляните на другие подходы и сделать сравнения.

вот как вы делаете перенаправление (3xx) с одного url на другой в колбе (0.12.2):

#!/usr/bin/env python

from flask import Flask, redirect

app = Flask(__name__)

@app.route("/")
def index():
    return redirect('/you_were_redirected')

@app.route("/you_were_redirected")
def redirected():
    return "You were redirected. Congrats :)!"

if __name__ == "__main__":
    app.run(host="0.0.0.0",port=8000,debug=True)

для других официальных ссылок здесь.

flask.redirect(location, code=302)

документы можно найти здесь.

Comments

    Ничего не найдено.