<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 導航 - [索引](# "總目錄") - [下一頁](# "安裝") | - [上一頁](# "前言") | - [Flask 0.10.1 文檔](#) ? # 給有經驗程序員的前言 本章節是給有其它框架工作經驗的程序員,以及有具體或深刻涉及那些的典型用戶, ### Flask 中的線程局部變量 Flask 的設計抉擇之一就是,簡單的任務應該保持簡單;它們的實現不應是大量代碼的堆疊,并不應該限制到你。為此,我們選擇了一些可能讓某些人覺得驚訝或異端的設計。例如,Flask 內部使用線程局部的對象,這樣你不必在請求內的函數間傳遞對象來保證線程安全。這個方法很方便,但為依賴注入,或嘗試重用使用了與請求掛鉤的值的代碼,需要一個有效的請求上下文。 ### Web 開發是危險的 請在構建 Web 應用時牢記安全。 如果你編寫了一個 Web 應用,你很可能允許用戶在你的服務器上注冊并留下數據。即使你是這唯一的用戶,也會在應用中留下數據。用戶們把數據托付給你,你當然更希望這些數據被妥善安全地保存。 不幸的是,有許多方式可以讓 web 應用的安全措施形同虛設。 Flask 保護你免受現代Web 應用最常見的一個安全問題的困擾:跨站腳本攻擊(XSS)。除非你蓄意把不安全的 HTML 標記為安全,Flask 和底層的 Jinja2 模板引擎已經為你嚴防死守。但許多安全問題依然存在。 本文檔會在 web 開發中那些需要注意安全的方面警示你。這些安全考慮中的某些遠比人們想象的復雜,我們有時候低估漏洞被利用的可能性——直到一個聰明的攻擊者找出利用我們程序的方法。并且,不要想著你的應用沒有重要到可以吸引攻擊者。取決于攻擊的類型,有時候是自動化的僵尸機器搜尋在你數據庫中填充垃圾、惡意程序鏈接或之類東西的方法。 開發者必須在為需求編寫代碼時留心安全隱患,在這點上,Flask 與其它框架沒有區別。 ### Python 3 的狀態 Python 社區目前處于改善庫對 Python 編程語言中迭代支持的進程中。而當前大力改進中的處境仍有一些問題,使得我們難以遷移到 Python 3 。導致這些問題的原因一部分是語言中的變更長時間沒有復查,一部分也是因為我們沒有找出低層 API 應該如何做出修改來適應 Python 3 中 Unicode 的差異。 一旦應對變更的解決方案出現,Werkzeug 和 Flask 就會立刻遷移到 Python 3 ,并且我們會提供升級現有應用到 Python 3 的提示。在那之前,我們強烈建議在開發時使用 Python 2.6 和 2.7 ,并激活 Python 3 警告。如果你計劃在近期升級到 Python 3 ,我們強烈推薦你閱讀[如何編寫向后兼容的 Python 代碼](http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/) [http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/] 。 繼續閱讀 [*安裝*](#) 或 [*快速入門*](#) 。 ? 版權所有 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>

                              哎呀哎呀视频在线观看