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