Python+django網頁設計入門(20):使用WebSocket建立多人線上聊天室
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網頁設計入門(9):自定義反爬蟲功能
Python+django網頁設計入門(8):網站專案資料夾佈局
Python+django網頁設計入門(7):常用ORM操作
Python+django網頁設計入門(6):檔案上傳與資料匯入
Python+django網頁設計入門(5):自定義使用者註冊與登入功能
Python+django網頁設計入門(4):使用者登入與登入驗證
Python+django網頁設計入門(3):使用SQLite資料庫
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。
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及其依賴庫。
4、新建應用apps\ws\chatroom及其相應的檔案,資料夾結構如下
5、修改網站專案的settings.py,增加channels和chatroom應用。
6、修改網站專案的settings.py,配置ASGI_APPLICATION和CHANNEL_LAYERS。
7、執行manage.py命令,更新資料庫
8、在網站專案下建立檔案routing.py,內容如圖所示
9、建立模板檔案apps\ws\chatroom\templates\chatroom\index.html,內容如圖所示
10、建立模板檔案apps\ws\chatroom\templates\chatroom\room.html,內容如下
11、修改檔案apps\ws\chatroom\models.py,定義聊天模型,內容如下
12、修改檔案apps\ws\chatroom\admin.py,內容如下,使得後臺管理員登入之後可以看到聊天室的聊天記錄。
13、修改apps\ws\chatroom\urls.py檔案內容如下
14、修改apps\ws\chatroom\views.py檔案,內容如下
15、修改apps\ws\chatroom\routing.py檔案,內容如下
16、修改apps\ws\chatroom\consumers.py檔案,內容如下
17、在PyCharm中執行網站,介面如下,注意紅線處和之前課程中執行介面的不同。
19、進入聊天室主介面http://127.0.0.1:8000/chatroom/
20、未登入使用者的聊天介面
21、黑名單使用者的聊天介面
22、開啟兩個不同的瀏覽器,使用不同的使用者身份登入,然後聊天,介面如下
溫馨提示
關注本公眾號“Python小屋”,通過選單“最新資源”==>“歷史文章”可以快速檢視分專題的800篇技術文章列表,通過“最新資源”==>“微課專區”可以免費觀看300節Python微課,通過“最新資源”==>“培訓動態”可以檢視近期Python培訓安排,通過“最新資源”==>“教學資源”可以檢視Python教學資源。
--------董付國老師Python系列圖書--------
1)《Python程式設計(第2版)》清華大學出版社
2)《Python可以這樣學》清華大學出版社
3)《Python程式設計基礎(第2版)》清華大學出版社
4)《中學生可以這樣學Python》清華大學出版社,配套微課:《中學生可以這樣學Python》84節微課免費觀看地址
5)《Python程式設計開發寶典》清華大學出版社
6)《玩轉Python輕鬆過二級》清華大學出版社
7)《Python程式設計基礎與應用》機械工業出版社
8)《Python程式設計實驗指導書》清華大學出版社(預計2019年3月出版)
9)《Python程式設計基礎與案例集錦(中學版)》電子工業出版社(2019年3月第一版第一次印刷)
“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語言的課程群建設探討與實踐
2000頁Python系列PPT分享九:(GUI程式設計)(122頁)
Python實驗專案1例:使用程式池統計指定範圍內素數的個數
(PPT)Python程式設計課程教學內容組織與教學方法實踐
相關文章
- Python+django網頁設計入門(15):公用模板設計與使用PythonDjango網頁
- Python+django網頁設計入門(16):優化設計複用分頁程式碼PythonDjango網頁優化
- Python+django網頁設計入門(17):模板語法及應用PythonDjango網頁
- Python+django網頁設計入門(18):自定義模板過濾器PythonDjango網頁過濾器
- Python+django網頁設計入門(19):建立新模型擴充套件自帶使用者表的欄位PythonDjango網頁模型套件
- Java建立 多人聊天室Java
- [練手專案]Gin+websocket 的多人聊天室Web
- 按照python程式設計入門到實踐 18章節建立網頁開啟網頁失敗Python程式設計網頁
- 基於Netty實現的WebSocket聊天室--支援多人同時線上及定時心跳檢測NettyWeb
- 《HTML5+CSS3網頁設計入門必讀》——1.2建立Web內容HTMLCSSS3網頁Web
- WebSocket 入門Web
- Node + WebSocket + Vue 聊天室建立群聊/加入群聊WebVue
- 使用 rem 設計網頁REM網頁
- 商品詳情頁設計排版工具,零門檻入門使用指南!
- 網頁設計入門應該學什麼?網站設計八步驟分享網頁網站
- WebSocket 快速入門Web
- 一文帶你響應式網頁設計入門網頁
- Python 編寫的 線上多人多聊天室伺服器Python伺服器
- 20個使用網頁大背景的網站設計案例網頁網站
- 【譯】系統設計入門之面試題解答 —— 設計一個網頁爬蟲面試題網頁爬蟲
- 程式設計和網路程式設計入門程式設計
- JavaScript實現線上websocket WSS測試工具 -toolfk程式設計師工具網JavaScriptWeb程式設計師
- 為網頁設計建立有效的配色方案網頁
- FastAPI(56)- 使用 Websocket 打造一個迷你聊天室ASTAPIWeb
- 學習WebSocket(二):使用Spring WebSocket做一個簡單聊天室WebSpring
- VS2005入門之建立WEB站點和建立新頁面Web
- Web頁面中的“門”—Web端登入頁的設計Web
- 人才招聘季海報設計!線上網頁輕鬆設計招聘海報!網頁
- 微信小程式websocket聊天室微信小程式Web
- 網頁設計師 vs 網頁程式設計師網頁程式設計師
- 《HTML5+CSS3網頁設計入門必讀》——6.6問與答HTMLCSSS3網頁
- 使用輪詢&長輪詢實現網頁聊天室網頁
- 使用Android網路程式設計實現簡易聊天室Android程式設計
- WebSocket的故事(五)—— Springboot中,實現網頁聊天室之自定義訊息代理WebSpring Boot網頁
- js程式碼實現多人聊天室JS
- 花店鮮花管理與推薦系統+Python+Django網頁介面+管理系統+計算機課設PythonDjango網頁計算機
- 【HTML+CSS網頁設計與佈局 從入門到精通】第2章HTMLCSS網頁
- WebSocket協議入門介紹Web協議