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