Hi, 我是 Jason。
Easy way to build a real time and asynchronous web or app with Django Channels
- 地點: R2
- 時段: 第 2 天,11:15‑12:00
- 主題分類: 網站框架
- 語言: 中文演講/中文投影片
- Python 難易度: 進階
摘要
Django 是 Python 其中一個非常流行的網站框架,它採取傳統的視圖做法並且圍繞在:一個請求進來,Django 被觸發並服務,接著回應並送出,然後 Django 繼續等待。但現在的網站除了使用這種傳統的輪詢(polling)方法外還包含 WebSocket, HTTP2 等等技術,這也讓現代網站可以透過這些技術建造一個真正的 Real-time web。而 Channels 是讓 Django 具備這些技術的套件之一。
Channels 是一個官方維護的套件,未來預計會整合進入 Django framework(不過原先 Django 2 整合計畫確定延遲)。Channels 1 在 2017 年初正式發佈,近期更新的 Channels 2 則做了大量的原始碼改寫與架構變動:如完整的 asynchronous 但採用 Python's asyncio library,因此 Channels 2 無法向下支援 Python 3.4 與 Python 2.7 之前的版本,ASGI 作為一致性的介面(像 WSGI,因此不必部署兩套服務器)以及重新定位 Channels,是給開發者一個簡單解決問題的方案。因此這場演講將會著重在分享 Channels 改變的部分和其細節(說明 1 與 2 差異)與如何“建置”一個 Django Channels 的 web 與 app。
說明
Python 世界裡,開發一個 WebSocket 的網站已經有許多很棒的框架以及套件,例如 Twisted、Tornado、uWSGI,這些框架與套件究竟如何實現?Django Channels 其帶來簡單易用的特點為何?新版 Channels 2 的非同步原理是什麼?它會帶來何種效益?要如何去開發與使用?
在這篇演講中,將會環繞 WebSockets, asynchronous 與 channels 在這三個議題,最後能夠輕鬆建立一個 Django Channels web 或是 APP。