W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
0.8 新版功能.
Flask 0.8 引入了示例文件夾。 Flask 在很長(zhǎng)時(shí)間使得直接引用相對(duì)應(yīng)用文件夾 的路徑成為可能(通過(guò) Flask.root_path )。這也是許多開(kāi)發(fā)者加載存儲(chǔ) 在載入應(yīng)用旁邊的配置的方法。不幸的是,這只會(huì)在應(yīng)用不是包,即根路徑指向包 內(nèi)容的情況下才能工作。
在 Flask 0.8 中,引入了 Flask.instance_path 并提出了“實(shí)例文件夾” 的新概念。實(shí)例文件夾被為不使用版本控制和特定的部署而設(shè)計(jì)。這是放置運(yùn)行時(shí) 更改的文件和配置文件的最佳位置。
你可以在創(chuàng)建 Flask 應(yīng)用時(shí)顯式地提供實(shí)例文件夾的路徑,也可以讓 Flask 自 動(dòng)找到它。對(duì)于顯式的配置,使用 instance_path 參數(shù):
app = Flask(__name__, instance_path='/path/to/instance/folder')
請(qǐng)注意給出的 一定 是絕對(duì)路徑。
如果 instance_path 參數(shù)沒(méi)有賦值,會(huì)使用下面默認(rèn)的位置:
未安裝的模塊:
/myapp.py
/instance
未安裝的包:
/myapp
/__init__.py
/instance
已安裝的包或模塊:
$PREFIX/lib/python2.X/site-packages/myapp
$PREFIX/var/myapp-instance
$PREFIX 是你 Python 安裝的前綴。這個(gè)前綴可以是 /usr 或者你的 virtualenv 的路徑。你可以打印 sys.prefix 的值來(lái)查看前綴被設(shè)置成 了什么。
既然配置對(duì)象提供從相對(duì)文件名來(lái)載入配置的方式,那么我們也使得它從相對(duì)實(shí)例 路徑的文件名加載成為可能,如果你想這樣做。配置文件中的相對(duì)路徑的行為可以 在“相對(duì)應(yīng)用的根目錄”(默認(rèn))和 “相對(duì)實(shí)例文件夾”中切換,后者通過(guò)應(yīng)用構(gòu)造函 數(shù)的 instance_relative_config 開(kāi)關(guān)實(shí)現(xiàn):
app = Flask(__name__, instance_relative_config=True)
這里有一個(gè)配置 Flask 來(lái)從模塊預(yù)載入配置并覆蓋配置文件夾中配置文件(如果 存在)的完整例子:
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('yourapplication.default_settings')
app.config.from_pyfile('application.cfg', silent=True)
實(shí)例文件夾的路徑可以在 Flask.instance_path 找到。 Flask 也提供了 一個(gè)打開(kāi)實(shí)例文件夾中文件的捷徑,就是 Flask.open_instance_resource() 。
兩者的使用示例:
filename = os.path.join(app.instance_path, 'application.cfg')
with open(filename) as f:
config = f.read()
# or via open_instance_resource:
with app.open_instance_resource('application.cfg') as f:
config = f.read()
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: