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基本一样),加了它之后能够实现什么之前所不能实现的东西吗?
Après avoir lu ce paragraphe du document, je me demande s'il peut répondre aux doutes de la question :
Le dossier d'instance est conçu pour ne pas être sous contrôle de version et pour être spécifique au déploiement. C'est l'endroit idéal pour déposer des éléments qui changent au moment de l'exécution ou des fichiers de configuration.
Je crois comprendre que, comme pour la séparation du HTML et du CSS front-end, le dossier d'instance est séparé du dossier par défaut pour réduire le couplage. Il est pratique de modifier l'instance ultérieurement sans affecter le dossier. Le None mentionné par la question signifie que l'instance par défaut se trouve sous le dossier racine et que l'exemple correspondant à la question se trouve sous le répertoire flasky.
Désormais, la nouvelle version peut spécifier un emplacement spécifique en définissant le paramètre instance_path, par exemple, au même niveau que le répertoire flasky.