Python使用flask框架与前端建立websocket链接,并进行数据交互

本文介绍了如何使用Python的Flask框架与前端建立WebSocket连接,进行数据交互。首先,详细讲述了如何编写Flask后端服务,包括设置WebSocket实例和相关接口。接着,展示了如何完善HTML文件,利用Vue.js进行前端交互。然后,启动服务并测试WebSocket链接。最后,解释了Flask中emit()方法用于数据推送的关键参数,如事件名称和命名空间。在实践中,需要注意HTML文件的编码问题,以避免编译错误。
摘要由CSDN通过智能技术生成

Python使用flask框架与前端建立websocket链接,并进行数据交互

后端采用的框架为flask,前端用的flask自带的html编写,实现的功能为:前后端建立websocket链接并进行数据交互

一、编写一个flask后端服务

常规创建方式就可以,创建一个flask服务。声明一个websocket实例,以websocket的方式启动这个服务。

  1. 安装相关依赖:
pip install flask
pip install flask_socketio
  1. 声明应用和websocket实例
from flask import Flask, request, render_template
from flask_socketio import SocketIO, emit

# 声明应用
app = Flask(__name__)

# 为通讯添加一个密钥
app.config['SECRET_KEY'] = 'secret_key'

# 创建websocket实例
my_socket = SocketIO(app)

  1. 项目目录下新建temlpates文件夹,然后文件夹里新建index.html文件,内容信息,我们稍后补充,先有这个东西就行。
    在这里插入图片描述
  2. 编写接口信息。编写接口信息的时候要添加websocket通讯的相关方法。

# 声明访问页面信息
@app.route('/')
def index():
	# 这里是进行了flask前端模板的渲染,文件就是我们上面建的那个,只写文件名称就可以,框架内部是默认访问temlpates目录的
    return render_template('index.html')

新建一个websocket推送接口,使用 emit() 方法推送信息到到前端。然后声明几个websocket建立过程中用到的方法。关于 emit() 的使用,后面讲。

# 数据推送接口,后面调这个接口模拟数据发送
@app.route('/send_msg', methods=['post'])
def receive_source():
    """
    推送数据
    :return:
    """
    try:
        my_socket.emit('date', request.json, namespace='/')
        return 'success'
    except Exception as e:
        log.error(f'数据处理错误:{
     str(e)}')
        return 'failed'

# 当websocket链接建立的时候,会调用这个
@my_socket.on('connect')
def handle_connect():
    print('WebSocket 链接已经建立')

# 关闭用
@my_socket.on('disconnect')
def handle_disconnect():
    print('WebSocket 链接已经关闭')

# 发送信息用
@my_socket.on('message')
def handle_message(data):
    emit('msg', data, namespace='/')

  1. 以websocket的方式启动服务(填写完后面的html代码后启动)
if __name__ 
  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python Flask WebSocket是一种基于Python Flask框架的实时通信协议,它可以在Web应用程序中实现双向通信。WebSocket协议允许服务器和客户端之间建立一个持久的连接,从而可以实时地传输数据使用Python Flask WebSocket可以实现实时聊天、实时数据更新等功能。 ### 回答2: Python Flask WebSocket 是基于 Python 编程语言和 Flask 框架的一种实时通信协议。这种协议可以使 Web 应用程序实现实时通信功能,而不需要通过发送 HTTP 请求和接收响应来完成。 WebSocket 协议最初是由浏览器开发者和Web 开发者所设计的一种新型应用程序协议。与普通的HTTP协议不同,WebSocket可以允许在服务端和客户端之间进行双向通信。在 WebSocket 协议中,服务端和客户端可以随时发送消息,而且消息的发送和接收是非常快速的。这一功能可以帮助开发者设计出具有实时性的 Web 应用程序,在现代的 Web 应用中,实时性的需求越来越大。 Flask 是一个轻量级的 Web 框架,可以帮助我们快速构建 Web 应用程序。它使用 Python 编程语言,允许我们以一种简单的方式处理 URL、读取 POST 和 GET 请求、执行会话管理等等。 在 Python Flask WebSocket 中,我们可以使用 Flask-SocketIO 扩展来实现 WebSocket 功能。Flask-SocketIO 扩展可以使我们更加容易地实现 WebSocket 的实时通信功能。Flask-SocketIO 充分利用了服务器和客户端之间的 WebSocket 连接,实现了在服务器端和客户端之间的双向通信。 在 Python Flask WebSocket 中,我们可以使用多个库和工具来实现 WebSocket 功能。常用的库包括 Flask-SocketIO、Gevent-WebSocket、Werkzeug-WebSocket、等等。使用这些工具,开发者可以在服务器端和客户端之间轻松地实现实时通信功能,通过 WebSocket 协议实现双向通信。这对于开发实时性需求较强的 Web 应用程序尤为重要。 ### 回答3: Python Flask是一款用于Web应用程序开发的微型框架,其设计简单易用且易于扩展,因此广泛应用于Web开发领域。WebSocket是一种基于TCP协议的全双工通信协议,使得客户端和服务器可以实时交换数据Python Flask框架已经内置了与WebSocket交互所需的库,因此可以轻松地使用Python Flask来创建WebSocket应用程序。 在Python Flask中,可以使用Flask-SocketIO库来方便地使用WebSocket服务。通过使用Flask-SocketIO库,可以轻松地实现WebSocket的全双工通信,实时地向客户端发送数据,还可以处理客户端发送过来的数据。此外,Flask-SocketIO还支持使用Room来组织客户端,可以让客户端按照分组的方式,实现更加灵活的数据传输方式。 使用Python Flask开发WebSocket应用程序,需要以下步骤: 1. 安装Flask-SocketIO库。可以使用pip命令来安装它。 2. 导入Flask-SocketIO库。 3. 在Flask应用程序中创建SocketIO对象,以接受WebSocket连接。 4. 定义相关的事件处理函数。例如,当客户端与服务器建立连接时的事件处理函数。 5. 使用SocketIO对象,将事件处理函数与相应事件绑定。例如,将“connect”事件绑定到连接事件处理函数上。 6. 使用SocketIO对象,启动WebSocket服务。例如,使用run()方法启动Web应用程序。 Python FlaskWebSocket功能使得开发实时应用程序变得更加容易和灵活。使用WebSocket可以在不重新加载页面的情况下实现客户端和服务器之间的实时通信。如果你想开发一些需要实时通信功能的应用程序,那么Python Flask提供的WebSocket服务是一个非常不错的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值