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

时间:2013-08-24 22:39:42

标签: 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")
你知道吗? 提前谢谢。

3 个答案:

答案 0 :(得分:4)

使用urlparse (builtin module)。然后,使用内置烧瓶redirection methods

>>> 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'

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

答案 1 :(得分:1)

您可以使用 urllib 中的 urlparse 来解析网址。下面的函数检查解析url后出现的@IBAction func start(_ sender: Any) { timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(W1ViewController.counter), userInfo: nil, repeats: true) } @IBOutlet weak var stopOutlet: UIButton! @IBAction func stop(_ sender: Any) { seconds = 30 label.text = "\(seconds)" timer.invalidate() audioPlayer.stop() } schemenetloc变量。支持Python 2和3。

path

答案 2 :(得分:0)

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

@app.route('/<path>')
def redirection(path):
    if path == '':    # your condition
        return redirect('redirect URL')