Python 如何使用flask验证url并重定向到某个url

Python 如何使用flask验证url并重定向到某个url,python,flask,Python,Flask,我想在使用Flask重定向url之前验证它 我的抽象代码在这里 @app.before_request def before(): if request.before_url == "http://127.0.0.0:8000": return redirect("http://127.0.0.1:5000") 你知道吗? 提前感谢。您可以这样做(未经测试): @app.route(“/”) def重定向(路径): 如果路径='':#您的条件 返回重定向('重定向URL')

我想在使用Flask重定向url之前验证它

我的抽象代码在这里

@app.before_request
def before():
   if request.before_url == "http://127.0.0.0:8000":
       return redirect("http://127.0.0.1:5000")
你知道吗?
提前感谢。

您可以这样做(未经测试):

@app.route(“/”)
def重定向(路径):
如果路径='':#您的条件
返回重定向('重定向URL')
使用。然后,使用内置烧瓶


然后,您可以检查解析出的端口,并使用正确的端口或路径重建url(使用相同的库)。这将保持url的完整性,而不是处理字符串操作。

您可以从urllib使用urlparse解析url。下面的函数检查解析url后出现的
scheme
netloc
path
变量。同时支持Python2和Python3

try:
    # python 3
    from urllib.parse import urlparse
except ImportError:
    from urlparse import urlparse

def url_validator(url):
    try:
        result = urlparse(url)
        return all([result.scheme, result.netloc, result.path])
    except:
        return False

要验证URL,您可能需要使用正则表达式查看。这可能会有帮助:谢谢你有用的回答!
>>> from urlparse import urlparse
>>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
>>> o   
ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
        params='', query='', fragment='')
>>> o.scheme
'http'
>>> o.port
80
>>> o.geturl()
'http://www.cwi.nl:80/%7Eguido/Python.html'
try:
    # python 3
    from urllib.parse import urlparse
except ImportError:
    from urlparse import urlparse

def url_validator(url):
    try:
        result = urlparse(url)
        return all([result.scheme, result.netloc, result.path])
    except:
        return False