将旧URL重定向到带有烧瓶微框架的新URL
-
05-10-2019 - |
题
我正在制作一个新的网站来替换当前网站,使用烧瓶微型框架(基于Werkzeug),该网站使用Python(在我的情况下为2.6)。
核心功能和许多页面相同。但是,通过使用烧瓶,许多以前的URL与旧的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'))
Radomir的答案可能是可取的,尤其是如果您有很多新的URL映射。
不隶属于 StackOverflow