標籤:

Flask 發布 1.0 穩定版

簡評:現在都開始版本大躍進了嗎?對,別看別人,說的就是你 pipenv(名單太長,待補齊...)

Flask 其實早就已經十分穩定了,而在第一個 commit 大概 8 年之後,版本號才最終反映出了這一點。1.0 有大量的變化,這也代表了一年多的工作。

  • 不再支持 Python 2.6 和 3.3。
  • CLI 更靈活,FLASK_APP可以指向一個應用程序工廠,它可以在更多情況(使用過的文件名)下理解導入名稱,它會自動檢測常見的文件名,應用名稱和工廠名稱。FLASK_ENV描述應用運行的環境(比如development環境),並在大多數情況下替換FLASK_DEBUG,查看文檔以了解更多信息。
  • 如果安裝了python-dotenvflaskCLI 將從文件.flaskenv.env中載入環境變數,而不必在每個新終端中導出它們。
  • 開發伺服器默認使用多線程處理並發請求。
  • 完全刪之前棄用的flask.ext,按其實際包名稱導入擴展。
  • 調試模式下,缺少的密鑰時會從request.form顯示更有用的錯誤消息,這解決了開發人員常見的困惑。
  • 改進了錯誤處理機制。
  • 極大簡化app.logger的行為,使得更容易自定義。logger 總是命名為flask.app,如果沒有被註冊的話,它只添加一個處理器,並且永遠不會刪除現有的處理器。查看文檔以了解更多信息。
  • test_client增加json參數用於 post JSON 數據,並且Response對象新增get_json方法來在測試時以 JSON 格式解碼數據。
  • 新增test_cli_runner來測試應用的 CLI 命令。
  • 重寫文檔的許多部分,以提高清晰度和相關性,這是一項持續的工作。
  • 重寫教程和相應的示例,使用結構化布局並詳細解釋每個方面,以幫助新用戶避免常見問題並適應 Flask。

整個框架中還有很多其他更改,可以閱讀完整的更新日誌了解升級時可能會對代碼造成的影響。

JSON 安全修復

Flask 先前使用請求的內容類型(content type )解碼傳入的 JSON 位元組。儘管 JSON 只能編碼為 UTF-8,但 Flask 更加寬鬆。然而,Python 包含的非文本相關的編碼,可能會導致請求意外使用內存。

Flask 現在將檢測傳入的 JSON 數據的編碼是否為受支持的 UTF 編碼之一,並且不再允許來自請求的任意編碼。

安裝或升級

使用 pip 從 PyPI 安裝:

$ pip install -U Flask

原文:Flask 1.0 Released

擴展閱讀:

  • Python 3.7 將引入 dataclass 裝飾器
  • Python:range 對象並不是迭代器
  • PyPI 終於支持 Markdown 了

極光日報,極光開發者旗下媒體。

每天導讀三篇英文技術文章。

推薦閱讀:

Flask文件上傳(二):使用擴展實現
0608 - Flask 學的有點感覺了
Flask文件上傳系列目錄索引
Flask實踐:圖片牆生成器

TAG:Flask | Python |