古いURLをフラスコマイクロフレームワークで新しいURLにリダイレクトする
-
05-10-2019 - |
質問
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の答えが望ましい場合があります。
所属していません StackOverflow