W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如果您已經(jīng)開始使用包和藍圖(用藍圖實現(xiàn)模塊化的應用)輔助您的應用開發(fā)了,那么 這里還有一些非常好的辦法可以進一步的提升開發(fā)體驗。當藍圖被導入的時候, 一個通用的模板將會負責創(chuàng)建應用程序對象。但是如果你將這個對象的創(chuàng)建工作 移交給一個函數(shù)來完成,那么你就可以在此后創(chuàng)建它的多個實例。
這么做的目的在于:
那么該如何使用他們呢?
您可以像下面展示的這樣,從一個函數(shù)里啟動這個應用:
def create_app(config_filename):
app = Flask(__name__)
app.config.from_pyfile(config_filename)
from yourapplication.views.admin import admin
from yourapplication.views.frontend import frontend
app.register_blueprint(admin)
app.register_blueprint(frontend)
return app
有得必有失,在導入時,您無法在藍圖中使用這個應用程序對象。然而您可以在一個 請求中使用他。如果獲取當前配置下的對應的應用程序對象呢?請使用: current_app 函數(shù):
from flask import current_app, Blueprint, render_template
admin = Blueprint('admin', __name__, url_prefix='/admin')
@admin.route('/')
def index():
return render_template(current_app.config['INDEX_TEMPLATE'])
在這里我們從配置中查找一個網(wǎng)頁模板文件的名字。
所以,要使用這樣的一個應用,你必須先創(chuàng)建這個應用對象,這里是一個 運行此類程序的 run.py 文件的例子:
from yourapplication import create_app
app = create_app('/path/to/config.cfg')
app.run()
前文所提供的工廠函數(shù)并不是特別聰明好用,您可以改進它,如下的 改變可以是直接且可行的:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: