2017-08-24 135 views
-1

我正在试验烧瓶,并有一个基本的网页设置,给我一个数据字段填写。它一切正常,但我有一个通过套接字连接发送数据到服务器的问题。代码如下:烧瓶和插座io

from flask import Flask, render_template, request 
import socket 
import sys 

app = Flask(__name__) 

app.static_folder = 'static' 

HOST, PORT = '', 8888 


@app.route('/') 
def index(): 
    return render_template("index.html") 


@app.route('/success', methods=['POST']) 
def success(): 
    if request.method == 'POST': 
     if request.form['Update'] == 'Update': 
      messsage_name = request.form["message_name"] 

      with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as soc: 
       # connect to server if we have a post 
       soc.connect((HOST, PORT)) 
       soc.sendall(bytes(messsage_name + "\n", "utf-8")) 
    return render_template("index.html") 


if __name__ == '__main__': 
    app.debug = True 
    app.run() 

我想一旦打开插座,然后通过它的每个更新按钮被按下时发送数据,目前唯一的办法,我可以得到它的工作是保持开放的插座,在上述代码成功。我不希望插槽关闭,直到烧瓶应用程序退出。

最新最好的方式来实现我的目标

感谢

+0

我试过,但无法理解你真正想要什么。你可以再试一次吗? – Nabin

回答

1

我觉得你的标题是错误的。在你的例子中,没有使用socketIO库。 对于您烧瓶应用程序中使用socketIO,您需要安装这样的库:

pip install flask-socketio 

然后你就可以在你的Python文件导入为:

from flask_socketio import SocketIO, emit 

然后可以使用socketIO和将一些消息/数据发送到您的网页。

顺便说一下,如果您的套接字初始化为以前,只要您的Flask服务器处于打开状态,就会生活。更多信息over there.

如果您的目标是使用Python套接字,那么您必须编辑您的问题标题。