這部分文檔特別要求使用 Werkzeug 和 WSGI 的環(huán)境為 Python 3。
警告
Werkzeug 的 Python 3 支持目前只是實(shí)驗(yàn)性的。所以有問題歡迎反饋以幫助我們來改善它。
Python 3 的 WSGI 環(huán)境和 Python 2 有一點(diǎn)不同。如果你使用高級(jí)的 API,Werkzeug會(huì)幫你隱藏這些區(qū)別的大部分。Python 2 和 Pyhton 3 最主要的區(qū)別是 Python 2 的WSGI 環(huán)境包含字節(jié),而 Python 3 包含一系列不同的編碼字符串。
在 Python 3 有兩種不同類型的 WSGI 環(huán)境:
Werkzeug 給你提供一些函數(shù)自動(dòng)解決這些問題。所以你不需要關(guān)心內(nèi)部的實(shí)現(xiàn)。下面的函數(shù)和類可以用來讀取 WSGI 環(huán)境信息:
不推薦在 Python 3 中創(chuàng)造和修改 WSGI 環(huán)境除非確保能夠正確解碼。在 Werkzeug 中所有高級(jí) API 接口能正確實(shí)現(xiàn)編碼和解碼。
在 Python 3 中 Werkzeug 的 URL 為 unicode 字符串。所有的解析函數(shù)一般會(huì)提供操作字節(jié)碼功能。在某些情況,URLs 處理函數(shù)允許字符集不改變返回一個(gè)字節(jié)對(duì)象。在內(nèi)部 Werkzeug 正盡可能統(tǒng)一 URIs 和 IRIs。
Python 3 和 PyPy 在上傳文件時(shí),需要確保關(guān)閉 Request 對(duì)象。這要妥善關(guān)閉由多重解析創(chuàng)建的臨時(shí)文件。你可以使用 close() 方法。
除了請(qǐng)求對(duì)象還有上下文管理需要關(guān)閉,但是上下文管理可以自動(dòng)關(guān)閉。
更多建議: