python - 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
| |
| -- 模板 | | |-- 等等等等
欢迎任何建设性的想法,线索。
解决方案
推荐阅读
- python - JSONDecodeError:期望值:第 1 行第 1 列(字符 0)- 不适用于 Python 3.8
- r - reactiveValuesToList 的行为不符合预期
- python - 从 Pandas 数据帧的每一行中获取前 N 个值及其各自的列名
- python - 如何在 ubuntu 18.04 64bit 上安装 pycurl 7.43
- android - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.view.ViewGroup.addView(android.view.View)”
- javascript - Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义
- java - 在Android 10中请求位置坐标权限的正确方法
- typescript - 如何将用户状态设置为空?
- string - 如何将字符串值转换为数字 - Google 跟踪代码管理器
- html - “[HMR] 等待来自 WDS 的更新信号……”究竟是什么意思