首页 > 解决方案 > Flask SSE 无法连接到事件流。Redis 正在运行吗?

问题描述

嗯,是的,Redis 正在运行,但似乎我的应用程序找不到它。main.py 文件如下

初始化.py

from flask import Flask
from config import Config

from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager

import os
import logging

db = SQLAlchemy()
.
.
.
def create_app():
    app = Flask(__name__)

    app.config.from_object(Config)
    db.init_app(app)
    .
    .
    .

主文件

from flask import render_template, request, jsonify, Flask, redirect, url_for, flash
from flask_login import login_required, logout_user, current_user, login_user
from flask_sse import sse
from flask import Blueprint

from . import db
from . import log
from . import Config

main  = Blueprint('main', __name__)

import sys,os
import time
from gpiozero import Button, LED
from gpiozero import *
from subprocess import check_call
from signal import pause
from .forms import LoginForm, RegistrationForm, AddUserForm

door_1_toggle = LED(5, True, True)
door_2_toggle = LED(6, True, True)

app = Flask(__name__)
app.register_blueprint(sse, url_prefix='/stream')

@main.route("/stream")
def door_switch():

    with main.app_context():
        sse.publish({'message':"door switch called"}, type='greeting')
    return "Door message Sent"

config.py 文件:

basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):
    SECRET_KEY = os.environ.get('SECRET_KEY') or '***-***-***-***'
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
        'sqlite:///' + os.path.join(basedir, 'garage.db')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    REDIS_URL= "redis://localhost"

我之前在同一个盒子(Raspbery PI Zero)上运行过概念验证测试,它们运行良好。我能看到的唯一区别是布局,即:

  config.py

  app

  admin.py

   errors.py

   forms.py

   __init__.py

   main.py

   models.py

   static

    css
    js
   images

| |
| -- 模板 | | |-- 等等等等

欢迎任何建设性的想法,线索。

标签: pythonflaskredisflask-sse

解决方案


推荐阅读