项目24:简易在线聊天室 — 《跟着小王学Python·新手》

《跟着小王学Python》 是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Python的核心概念。通过开发游戏、构建Web应用、编写网络爬虫、制作桌面软件等多样化项目,学习者可以深入理解并实践Python知识。每周更新1至2篇内容,旨在助力学习者成长为全栈工程师。

作为课程作业或者毕设参考也是不错的选择


文章目录

  • 项目24:简易在线聊天室 --- 《跟着小王学Python·新手》
  • 目标
  • 功能
  • 设计
  • 技术选型
  • 系统架构
  • 数据流
  • 实现步骤
  • 代码实现
  • 前端代码(index.html)
  • 测试
  • 注意事项
  • 小结


项目24:简易在线聊天室 --- 《跟着小王学Python·新手》_游戏

目标

本项目旨在为Python新手提供一个简易在线聊天室的实现教程,通过本教程,学习者将能够理解网络编程的基本概念,并能够独立搭建一个简单的在线聊天室。

功能

  • 用户注册与登录
  • 实时消息发送与接收
  • 支持多用户在线聊天

设计

技术选型

  • Python:作为主要的编程语言,因其简洁易学的特性,非常适合新手入门。
  • Flask:一个轻量级的Web框架,用于搭建Web服务器。
  • Socket.IO:用于实现实时通信。

系统架构

系统分为前端和后端两部分:

  • 前端:负责用户界面的展示,使用HTML、CSS和JavaScript。
  • 后端:负责业务逻辑处理,使用Python Flask框架。

数据流

  1. 用户通过前端界面发送消息。
  2. 前端将消息发送到后端服务器。
  3. 后端服务器将消息广播给所有在线用户。
  4. 其他用户前端接收到消息并展示。

实现步骤

  1. 设置Flask环境。
  2. 创建聊天室的基本页面。
  3. 实现用户注册与登录功能。
  4. 使用Socket.IO实现实时通信。
  5. 测试聊天室功能。

代码实现

# 导入必要的库
from flask import Flask, render_template, request
from flask_socketio import SocketIO, emitapp = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)# 聊天室页面
@app.route('/')
def index():return render_template('index.html')# 处理连接事件
@socketio.on('connect')
def test_connect():emit('my response', {'data': 'Connected'})# 处理聊天消息
@socketio.on('message')
def handle_message(data):print('received message: ' + data)emit('my response', {'data': data})if __name__ == '__main__':socketio.run(app, debug=True)

前端代码(index.html)

<!DOCTYPE html>
<html>
<head><title>简易在线聊天室</title><script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script><script type="text/javascript" charset="utf-8">var socket = io();$('form').submit(function(e) {e.preventDefault();socket.emit('message', $('#m').val());$('#m').val('');return false;});socket.on('my response', function(msg) {$('#messages').append($('<li>').text(msg.data));});</script>
</head>
<body><ul id="messages"></ul><form action=""><input id="m" autocomplete="off"><button>Send</button></form>
</body>
</html>

测试

  1. 启动Flask应用。
  2. 打开多个浏览器窗口,访问聊天室页面。
  3. 在不同的窗口中发送消息,验证消息是否能够实时显示在所有窗口中。

注意事项

  • 确保Python环境已安装Flask和Flask-SocketIO。
  • 本聊天室为教学示例,未实现用户认证和数据持久化,不适合生产环境使用。

小结

通过本项目,我们学习了如何使用Python和Flask框架搭建一个简易的在线聊天室。