flask的Flask类初始化参数中有一个instance_path
,默认为None
。
在官网上看了相关文档Instance Folders,反复看了几遍还是不太明白其意义何在,看flask相关案例也没有见过使用的。
自己在机器上做了下测试,输出如下:
view函数加一句print current_app.root_path+'\n'+current_app.instance_path
,可以得到:
/home/xxx/Documents/flasky/flasky/app
/home/xxx/Documents/flasky/flasky/instance
其跟root_path的区别仅在于最后一个地方由app
变成了instance
,这参数是0.8版本才加的,意义何在(既然它和root_path基本一样),加了它之后能够实现什么之前所不能实现的东西吗?
文書を読んだ後、次の段落がありますが、質問者の疑問に答えることができるかどうか疑問に思います:
インスタンス フォルダーは、バージョン管理されず、デプロイメント固有になるように設計されており、実行時に変更されるものや構成ファイルをドロップするのに最適な場所です。
私の理解では、フロントエンドの HTML と CSS の分離と同様に、インスタンス フォルダーは結合を減らすためにデフォルト フォルダーから分離されています。後でフォルダーに影響を与えずにインスタンスを変更すると便利です。質問で言及されている「なし」は、デフォルトのインスタンスがルート フォルダーの下にあり、質問に対応する例が flasky ディレクトリの下にあることを意味します。新しいバージョンでは、instance_path パラメーターを設定することで、たとえば flasky ディレクトリと同じレベルで特定の場所を指定できるようになりました。