2

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")

何か考えはありますか?前もって感謝します。

4

3 に答える 3

6

urlparse (組み込みモジュール)を使用します。次に、組み込みのフラスコリダイレクト メソッドを使用します。

>>> 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 を再構築できます。これにより、文字列操作を処理する代わりに、URL の整合性が維持されます。

于 2013-08-25T00:31:16.053 に答える
1

urllibのurlparseを使用して、URL を解析できます。をチェックする以下の関数と、URL を解析した後に来る変数。Python 2 と 3 の両方をサポートします。schemenetlocpath

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
于 2017-12-07T11:57:53.810 に答える