首頁 >後端開發 >Python教學 >Flask 藍圖中的絕對路徑與相對路徑:如何正確引用目錄?

Flask 藍圖中的絕對路徑與相對路徑:如何正確引用目錄?

Susan Sarandon
Susan Sarandon原創
2024-12-26 17:41:14381瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn