我正在使用使用Python的Flask微框架(基於Werkzeug)(我的情況是2.6)替換當前的一個新網站。使用Flask微框架將一箇舊URL重定向到一個新URL
核心功能和許多頁面是相同的。但是通過使用Flask,許多以前的URL與舊的不同。
我需要一種方式來存儲每個舊的URL和新的URL,這樣,如果用戶輸入一箇舊的URL,他們只是被轉發到新的URL,一切工作正常。
有沒有人知道這是否可能在燒瓶?
預先感謝您的幫助:-)
我正在使用使用Python的Flask微框架(基於Werkzeug)(我的情況是2.6)替換當前的一個新網站。使用Flask微框架將一箇舊URL重定向到一個新URL
核心功能和許多頁面是相同的。但是通過使用Flask,許多以前的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'))
如果你已經有舊網址的處理程序,那麼你可能會發現最容易做的事情是上面的,即只是替換正文:
return redirect(url_for('new_hotness'))
的Radomir的回答可能是優選特別是如果你有很多新舊的URL映射,但是。
請注意,如果您重定向到錨點,則無法將其粘貼到'new_hotness'上。您必須使用另一個名爲'_anchor'的參數來指定它。 https://stackoverflow.com/questions/21583594/flask-redirect-url-with-anchor – phyatt 2018-02-28 14:05:58