古いURLをフラスコマイクロフレームワークで新しいURLにリダイレクトする

StackOverflow https://stackoverflow.com/questions/3789462

質問

Python(私の場合は2.6)を使用するFlask Micro-Framework(Werkzeugに基づく)を使用して、現在のWebサイトを置き換える新しいWebサイトを作成しています。

コア機能と多くのページは同じです。ただし、フラスコを使用することにより、以前のURLの多くは古いURLとは異なります。

古いURLと新しいURLのそれぞれを何らかの形で保存する方法が必要です。そうすれば、ユーザーが古いURLに入力すると、新しいURLに転送され、すべてが正常に機能するようになります。



これがフラスコで可能かどうか知っている人はいますか?

よろしくお願いします:-)

役に立ちましたか?

解決

このようなことはあなたを始めるべきです:

from flask import Flask, redirect, request

app = Flask(__name__)

redirect_urls = {
    'http://example.com/old/': 'http://example.com/new/',
    ...
}

def redirect_url():
    return redirect(redirect_urls[request.url], 301)

for url in redirect_urls:
    app.add_url_rule(url, url, redirect_url)

他のヒント

これを行う別の方法は、古いURLのハンドラーを変更して、単に明示的にリダイレクトすることです。

from flask import Flask, redirect, url_for

app = Flask(__name__)

@app.route('/new')
def new_hotness():
    return 'Sizzle!'

@app.route('/old')
def old_busted():
    return redirect(url_for('new_hotness'))

すでに古いURLのハンドラーがある場合は、最も簡単なことが上記です。つまり、体を次のものに置き換えるだけです。

return redirect(url_for('new_hotness'))

ただし、特に古いURLマッピングがたくさんある場合は、Radomirの答えが望ましい場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top