2017-08-24 132 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套接字,那麼您必須編輯您的問題標題。