91在线一级黄片|91视频在线观看18|成人夜间呦呦网站|91资源欧美日韩超碰|久久最新免费精品视频一区二区三区|国产探花视频在线观看|黄片真人免费三级片毛片|国产人无码视频在线|精品成人影视无码三区|久久视频爱久久免费精品

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Flask教程:Flask應(yīng)用程序的工廠函數(shù)

如果您已經(jīng)開始使用包和藍(lán)圖(用藍(lán)圖實(shí)現(xiàn)模塊化的應(yīng)用)輔助您的應(yīng)用開發(fā)了,那么 這里還有一些非常好的辦法可以進(jìn)一步的提升開發(fā)體驗(yàn)。當(dāng)藍(lán)圖被導(dǎo)入的時(shí)候, 一個(gè)通用的模板將會(huì)負(fù)責(zé)創(chuàng)建應(yīng)用程序?qū)ο?。但是如果你將這個(gè)對象的創(chuàng)建工作 移交給一個(gè)函數(shù)來完成,那么你就可以在此后創(chuàng)建它的多個(gè)實(shí)例。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)永安,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

這么做的目的在于:

  1. 測試。你可以使用多個(gè)應(yīng)用程序的實(shí)例,為每個(gè)實(shí)例分配分配不同的配置, 從而測試每一種不同的情況。
  2. 多個(gè)實(shí)例。想象以下情景:您需要同時(shí)運(yùn)行同一個(gè)應(yīng)用的不同版本,您當(dāng)然可以 在你的Web服務(wù)器中配置多個(gè)實(shí)例并分配不同的配置,但是如果你使用工廠函數(shù), 你就可以在一個(gè)隨手即得的進(jìn)程中運(yùn)行這一個(gè)應(yīng)用的不同實(shí)例了!

那么該如何使用他們呢?

基礎(chǔ)的工廠函數(shù)

您可以像下面展示的這樣,從一個(gè)函數(shù)里啟動(dòng)這個(gè)應(yīng)用:

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

有得必有失,在導(dǎo)入時(shí),您無法在藍(lán)圖中使用這個(gè)應(yīng)用程序?qū)ο?。然而您可以在一個(gè) 請求中使用他。如果獲取當(dāng)前配置下的對應(yīng)的應(yīng)用程序?qū)ο竽??請使? ?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'])

在這里我們從配置中查找一個(gè)網(wǎng)頁模板文件的名字。

使用應(yīng)用程序

所以,要使用這樣的一個(gè)應(yīng)用,你必須先創(chuàng)建這個(gè)應(yīng)用對象,這里是一個(gè) 運(yùn)行此類程序的 run.py 文件的例子:

from yourapplication import create_app
app = create_app('/path/to/config.cfg')
app.run()

工廠函數(shù)的改進(jìn)

前文所提供的工廠函數(shù)并不是特別聰明好用,您可以改進(jìn)它,如下的 改變可以是直接且可行的:

  1. 使得在單元測試中傳入配置值成為可行,以使您不必在文件系統(tǒng)中 創(chuàng)建多個(gè)配置文件。
  2. 在程序初始時(shí)從藍(lán)圖中調(diào)用一個(gè)函數(shù),這樣您就有機(jī)會(huì)修改應(yīng)用的參數(shù)屬性了 (就像在在請求處理器前后的調(diào)用鉤子等)
  3. 如果必要的話,在應(yīng)用正在被創(chuàng)建時(shí)添加 WSGI 中間件。

標(biāo)題名稱:創(chuàng)新互聯(lián)Flask教程:Flask應(yīng)用程序的工廠函數(shù)
文章路徑:http://m.jiaoqi3.com/article/coedpee.html