python - flask中,instance_path參數的存在意義是什么呢?
問題描述
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基本一樣),加了它之后能夠實現什么之前所不能實現的東西嗎?
問題解答
回答1:看了下文檔里面有這樣一段話,不知道能不能解答題主的疑惑:
The instance folder is designed to not be under version control and be deployment specific. It’s the perfect place to drop things that either change at runtime or configuration files.
我的理解就是類似前端html與css分離一樣,實例文件夾與默認的跟文件夾分離,降低耦合度。方便后期修改實例的時候不影響到跟文件夾。題主說的None就是默認的實例是在根文件夾下面的,對應到題目中的例子就是在flasky目錄下面。而現在新的版本可以通過設置instance_path參數指定具體的位置,比方說跟flasky目錄同級。
相關文章:
