在socket.io事件完成后,Flask socket.io重定向到模板

时间:2016-11-16 22:20:40

标签: python flask socket.io

我收到一些socket.io事件。处理完事件后,我想将用户重定向到某个页面。但是,重定向不起作用。我不知道出了什么问题。以下是我的代码:

from flask import Flask, render_template, send_from_directory, redirect, url_for
from flask_socketio import SocketIO, emit
import base64
import os
import random, string

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

@app.route('/')
def index():
    try:
        image_names = os.listdir('./images')
        print image_names
        return render_template("gallery.html", image_names=image_names)
    except Exception as ex:
        print ex

@socketio.on('takephoto')
def takePhoto(*args): 
    try:
        decoded = base64.b64decode(args[0])
        filename = ''.join(random.choice(string.lowercase) for x in range(6)) + '.jpg'
        with open("./images/" + filename, "wb") as fh:
            fh.write(args[0].decode('base64'))
    except Exception, ex:
        print ex

    redirect(url_for('index')) #This doesnt work
    #how can i go to index from this point?

if __name__ == '__main__':
    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    app.debug = True
    server = pywsgi.WSGIServer(('', 5001), app, handler_class=WebSocketHandler)
    server.serve_forever()

1 个答案:

答案 0 :(得分:0)

我认为你错过了return声明。

return redirect(url_for('index'))