306

私はPythonとFlaskを初めてResponse.redirect使用し、C#と同等の処理を実行しようとしています。つまり、特定の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)
4

11 に答える 11

473

リダイレクトを返す必要があります:

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)

フラスコのドキュメントのドキュメントを参照してください。コードのデフォルト値は 302 であるためcode=302、省略したり、他のリダイレクト コード (301、302、303、305、および 307 のいずれか) に置き換えたりすることができます。

于 2013-01-15T18:03:43.240 に答える
121
#!/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)

ドキュメントの例を見てください。

于 2013-01-15T18:05:21.523 に答える
45

Flask API ドキュメント(v. 2.0.x)から:

フラスコ。リダイレクト( location, code=302, Response=None)

呼び出された場合にクライアントをターゲットの場所にリダイレクトする応答オブジェクト (WSGI アプリケーション) を返します。サポートされているコードは 301、302、303、305、および 307 です。300 は実際のリダイレクトではないためサポートされず、304 は定義された If-Modified-Since ヘッダーを含む要求に対する応答であるためサポートされていません。

バージョン 0.6で追加: ロケーションは、iri_to_uri() 関数を使用してエンコードされた Unicode 文字列にすることができるようになりました。

パラメーター:

  • location– 応答がリダイレクトされる場所。
  • code– リダイレクト ステータス コード。デフォルトは 302 です。
  • Response(class) – レスポンスをインスタンス化するときに使用するレスポンス クラス。指定されていない場合、デフォルトは werkzeug.wrappers.Response です。
于 2013-01-15T18:02:58.563 に答える
8
flask.redirect(location, code=302)

ドキュメントはここにあります。

于 2013-01-15T18:03:11.043 に答える