Python+django網頁設計入門(20):使用WebSocket建立多人線上聊天室

Python_小屋發表於2019-03-09

2019年3月8日-10日公眾號送書活動中小學生Python課應該學什麼

================

前導課程:

Python+django網頁設計入門(19):建立新模型擴充套件自帶使用者表的欄位

Python+django網頁設計入門(18):自定義模板過濾器

Python+django網頁設計入門(17):模板語法及應用

Python+django網頁設計入門(16):優化設計複用分頁程式碼

Python+django網頁設計入門(15):公用模板設計與使用

Python+django網頁設計入門(14):使用中介軟體對抗爬蟲

Python+django網頁設計入門(13):表單、修改密碼

Python+django網頁設計入門(12):使用Bootstrap和jQuery

Python+django網頁設計入門(11):線上考試與自動評分

Python+django網頁設計入門(10):分頁顯示

Python+django網頁設計入門(9):自定義反爬蟲功能

Python+django網頁設計入門(8):網站專案資料夾佈局

Python+django網頁設計入門(7):常用ORM操作

Python+django網頁設計入門(6):檔案上傳與資料匯入

Python+django網頁設計入門(5):自定義使用者註冊與登入功能

Python+django網頁設計入門(4):使用者登入與登入驗證

Python+django網頁設計入門(3):使用SQLite資料庫

Python+django建站入門篇(2):素數判斷

Python+django建站入門篇:Hello world

Python 3.6+Django開發入門小案例(自動變化的問候)完整步驟

===================

技術要點:

1)安裝與使用channels及其依賴的軟體和擴充套件庫;

2)使用channels實現WebSocket;

3)使用WebSocket實現線上聊天室;

4)檢測使用者是否登入;

5)非同步程式設計,相關基礎知識可以參考《Python程式設計開發寶典》;

5)設定黑名單。

=====================

1、進入cmd模式,執行命令pip install channels,安裝channels以及相應的依賴庫,在這個過程中,twisted庫很容易出問題,所以,先到https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下載輪子檔案放到Python安裝目錄的scripts資料夾中,執行pip命令離線安裝twisted庫,然後再安裝channels。

640?wx_fmt=png


2、下載並安裝Redis,地址:https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi,在安裝過程中注意把Redis安裝路徑新增到環境變數PATH中,並保持預設埠6379不變。


3、安裝擴充套件庫channels_redis及其依賴庫。

640?wx_fmt=png


4、新建應用apps\ws\chatroom及其相應的檔案,資料夾結構如下

640?wx_fmt=png


5、修改網站專案的settings.py,增加channels和chatroom應用。

640?wx_fmt=png


6、修改網站專案的settings.py,配置ASGI_APPLICATION和CHANNEL_LAYERS。

640?wx_fmt=png


7、執行manage.py命令,更新資料庫

640?wx_fmt=png


8、在網站專案下建立檔案routing.py,內容如圖所示

640?wx_fmt=png


9、建立模板檔案apps\ws\chatroom\templates\chatroom\index.html,內容如圖所示

640?wx_fmt=png


10、建立模板檔案apps\ws\chatroom\templates\chatroom\room.html,內容如下

640?wx_fmt=png


11、修改檔案apps\ws\chatroom\models.py,定義聊天模型,內容如下

640?wx_fmt=png


12、修改檔案apps\ws\chatroom\admin.py,內容如下,使得後臺管理員登入之後可以看到聊天室的聊天記錄。

640?wx_fmt=png


13、修改apps\ws\chatroom\urls.py檔案內容如下

640?wx_fmt=png


14、修改apps\ws\chatroom\views.py檔案,內容如下

640?wx_fmt=png


15、修改apps\ws\chatroom\routing.py檔案,內容如下

640?wx_fmt=png


16、修改apps\ws\chatroom\consumers.py檔案,內容如下

640?wx_fmt=png


17、在PyCharm中執行網站,介面如下,注意紅線處和之前課程中執行介面的不同。

640?wx_fmt=png


19、進入聊天室主介面http://127.0.0.1:8000/chatroom/

640?wx_fmt=png


20、未登入使用者的聊天介面

640?wx_fmt=png

21、黑名單使用者的聊天介面

640?wx_fmt=png


22、開啟兩個不同的瀏覽器,使用不同的使用者身份登入,然後聊天,介面如下

640?wx_fmt=png



溫馨提示

關注本公眾號“Python小屋”,通過選單“最新資源”==>“歷史文章”可以快速檢視分專題的800篇技術文章列表,通過“最新資源”==>“微課專區”可以免費觀看300節Python微課,通過“最新資源”==>“培訓動態”可以檢視近期Python培訓安排,通過“最新資源”==>“教學資源”可以檢視Python教學資源。

640?wx_fmt=png


--------董付國老師Python系列圖書--------

1)《Python程式設計(第2版)》清華大學出版社

640?wx_fmt=png


2)《Python可以這樣學》清華大學出版社

640?wx_fmt=png


3)《Python程式設計基礎(第2版)》清華大學出版社

640?wx_fmt=png

4)《中學生可以這樣學Python》清華大學出版社,配套微課:《中學生可以這樣學Python》84節微課免費觀看地址

640?wx_fmt=png


5)《Python程式設計開發寶典》清華大學出版社

640?wx_fmt=png


6)《玩轉Python輕鬆過二級》清華大學出版社

640?wx_fmt=png


7)《Python程式設計基礎與應用》機械工業出版社

640?wx_fmt=png


8)《Python程式設計實驗指導書》清華大學出版社(預計2019年3月出版)

640?wx_fmt=jpeg


9)《Python程式設計基礎與案例集錦(中學版)》電子工業出版社(2019年3月第一版第一次印刷)

640?wx_fmt=png


《中學生可以這樣學Python》84節微課免費觀看地址

非計算機專業《Python程式設計基礎》教學參考大綱

計算機相關專業“Python程式設計”教學大綱(參考)

《Python程式設計》實驗指導書(30個實驗)

《Python程式設計基礎與應用》課後習題答案

Python課程期末考試程式設計題自動批卷原理與實現模板

“Python小屋”免費資源彙總(截至2018年11月28日)


系列教學PPT:

1900頁Python系列PPT分享一:基礎知識(106頁)

1900頁Python系列PPT分享二:Python序列(列表、元組、字典、集合)(154頁)

1900頁Python系列PPT分享三:選擇與迴圈結構語法及案例(96頁)

1900頁Python系列PPT分享四:字串與正規表示式(109頁)

1900頁Python系列PPT分享五:函式設計與應用(134頁)

1900頁Python系列PPT分享六:物件導向程式設計(86頁)

1900頁Python系列PPT分享七:檔案操作(132頁)

1900頁Python系列PPT分享八:異常處理結構與程式除錯、測試(70頁)

報告PPT(163頁):基於Python語言的課程群建設探討與實踐

報告PPT(123頁):Python程式設計基礎精要

2000頁Python系列PPT分享九:(GUI程式設計)(122頁)

Python實驗專案1例:使用程式池統計指定範圍內素數的個數

(PPT)Python程式設計課程教學內容組織與教學方法實踐


相關文章