<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 導航 - [索引](# "總目錄") - [下一頁](# "應用程序的工廠函數") | - [上一頁](# "Flask 代碼模式") | - [Flask 0.10.1 文檔](#) ? - [Flask 代碼模式](#) ? # 大型應用 對于比較大型的應用,更好的做法是使用包管理代碼,而不是模塊來管理代碼。這非常簡單,設想一個如下結構的應用: ~~~ /yourapplication /yourapplication.py /static /style.css /templates layout.html index.html login.html ... ~~~ ### 簡單的包 將一個項目改為一個更大的包,僅僅創建一個新的 yourapplication 文件夾在已存的文件夾下面,然后將所有的的文件都移動到它下面。之后將 yourapplication.py重命名為 __init__.py (確保先刪除了其中所有的 .pyc 文件,否則可能導致錯誤的結果) 您最后得到的東西應該像下面這樣: ~~~ /yourapplication /yourapplication /__init__.py /static /style.css /templates layout.html index.html login.html ... ~~~ 如何在此種方式下運行您的應用?原來的 pythonyourapplication/__init__.py不能再工作了。這是由于 Python 不希望在包中的模塊成為初始運行的文件。但這不是一個大問題,僅僅添加一個名叫 runserver.py 的新文件,把這個文件放在yourapplication 文件夾里,并添加如下功能: ~~~ from yourapplication import app app.run(debug=True) ~~~ 然后,我們又能對應用做什么呢?現在我們可以重新構造我們的應用,將其改造為多個模塊。你唯一需要記住的就是下面的速記備忘表: 1. Flask 程序對象的創建必須在 __init__.py 文件里完成,這樣我們就可以安全的導入每個模塊,而 __name__ 變量將會被分配給正確的包。 1. 所有(上面有 [route()](# "flask.Flask.route") 裝飾器的那些)視圖函數必須導入到 __init__.py 文件。此時,請通過模塊而不是對象本身作為路徑導入這些視圖函數。**必須在應用對象創建之后** 導入視圖模塊。 這里是 __init__.py 的一個例子: ~~~ from flask import Flask app = Flask(__name__) import yourapplication.views ~~~ 而 views.py 應該看起來像這樣: ~~~ from yourapplication import app @app.route('/') def index(): return 'Hello World!' ~~~ 您最終應該得到的程序結構應該是這樣: ~~~ /yourapplication /runserver.py /yourapplication /__init__.py /views.py /static /style.css /templates layout.html index.html login.html ... ~~~ 循環導入 每個 Python 程序員都會討厭他們,而我們反而還添加了幾個進去:循環導入(在兩個模塊相互依賴對方的時候,就會發生循環導入)。在這里views.py 依賴于 __init__.py。通常這被認為是個不好的主意,但是在這里實際上不會造成問題。之所以如此,是因為我們實際上沒有在__init__.py 里使用這些視圖,而僅僅是保證模塊被導入了。并且,我們是在文件的結尾這么做的。 這種做法仍然有些問題,但是如果您想要使用修飾器,那么沒有其他更好的方法了。檢查 [*聚沙成塔*](#) 這一章來尋找解決問題的些許靈感吧。 ### 與藍圖一起工作 如果您有規模較大的應用,建議您將他們分拆成小的組,讓每個組接口于藍圖提供的輔助功能。關于這一主題進一步的介紹請參考[*用藍圖實現模塊化的應用*](#) 這一章節的文檔 ? 版權所有 2013, Armin Ronacher.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看