Python 3 Notes

2018-02-24 15:39 更新

Python 3 Notes

這部分文檔特別要求使用 Werkzeug 和 WSGI 的環(huán)境為 Python 3。

警告

Werkzeug 的 Python 3 支持目前只是實(shí)驗(yàn)性的。所以有問(wèn)題歡迎反饋以幫助我們來(lái)改善它。

WSGI 環(huá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 有兩種不同類(lèi)型的 WSGI 環(huán)境:

  • unicode 字符串限制到 latin1 值。他們經(jīng)常用于 HTTP headers 信息和其他一些地方。
  • unicode 字符串?dāng)y帶二進(jìn)制數(shù)據(jù),通過(guò) latin1 值來(lái)回傳遞。這在 Werkzeug 通常被成為 “WSGI encoding dance” 。

Werkzeug 給你提供一些函數(shù)自動(dòng)解決這些問(wèn)題。所以你不需要關(guān)心內(nèi)部的實(shí)現(xiàn)。下面的函數(shù)和類(lèi)可以用來(lái)讀取 WSGI 環(huán)境信息:

不推薦在 Python 3 中創(chuàng)造和修改 WSGI 環(huán)境除非確保能夠正確解碼。在 Werkzeug 中所有高級(jí) API 接口能正確實(shí)現(xiàn)編碼和解碼。

URLs

在 Python 3 中 Werkzeug 的 URL 為 unicode 字符串。所有的解析函數(shù)一般會(huì)提供操作字節(jié)碼功能。在某些情況,URLs 處理函數(shù)允許字符集不改變返回一個(gè)字節(jié)對(duì)象。在內(nèi)部 Werkzeug 正盡可能統(tǒng)一 URIs 和 IRIs。

清理 Request

Python 3 和 PyPy 在上傳文件時(shí),需要確保關(guān)閉 Request 對(duì)象。這要妥善關(guān)閉由多重解析創(chuàng)建的臨時(shí)文件。你可以使用 close() 方法。

除了請(qǐng)求對(duì)象還有上下文管理需要關(guān)閉,但是上下文管理可以自動(dòng)關(guān)閉。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)