ホームページ >バックエンド開発 >Python チュートリアル >Flask ブループリントの絶対パスと相対パス: ディレクトリを正しく参照するには?
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 サイトの他の関連記事を参照してください。