ホームページ >バックエンド開発 >Python チュートリアル >Flask ブループリントの絶対パスと相対パス: ディレクトリを正しく参照するには?

Flask ブループリントの絶対パスと相対パス: ディレクトリを正しく参照するには?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-26 17:41:14383ブラウズ

Absolute vs. Relative Paths in Flask Blueprints: How to Correctly Reference Directories?

Flask でのディレクトリの参照: 絶対パスと相対パス

Flask アプリケーションで、ルートの外側のブループリントにあるビューからディレクトリにアクセスする場合ディレクトリの場合、パスは絶対パスである必要があります。これは、相対パスが、コードが配置されているディレクトリではなく、現在の作業ディレクトリを基準として解釈されるためです。

説明のために、次の構造を持つ Flask アプリがあると仮定します:

project/
    app/
        __init__.py
        views.py
    blueprints/
        __init__.py
        blueprint.py
    data/
        nltk_data

ブループリントのビューでは、次のコードは失敗します:

nltk.data.path.append('../nltk_data/')

パスはブループリントのディレクトリに対する相対パスですが、 nltk.data には絶対パスが必要です。パスを指定する正しい方法は、絶対形式を使用することです:

nltk.data.path.append('/home/username/myapp/app/nltk_data/')

または、アプリまたはブループリントの root_path 属性を使用して、次のように絶対パスを構築することもできます:

resource_path = os.path.join(app.root_path, 'nltk_data')

パスをハードコーディングする必要がなくなり、コードの移植性が高まるため、これをお勧めします。

一般的には、ビューを呼び出すたびにディレクトリを nltk.data に追加する必要はありません。通常、データ パスはアプリの作成時に一度設定できます。これを行う具体的な手順については、nltk のドキュメントを参照してください。

以上がFlask ブループリントの絶対パスと相対パス: ディレクトリを正しく参照するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。