【发布时间】:2020-08-18 19:35:20
【问题描述】:
我试图通过分离烧瓶应用程序、服务组件和解耦的键/值对存储来整齐地划分我的代码。
我的网络应用如下所示:
import flask
import os
import service_component as service
app = flask.Flask(__name__)
@app.route("/", methods=["POST"])
def event():
service.dostuff()
return "ok", 200
if __name__ == "__main__":
app.run(port=5000, debug=True)
# for test purposes
app.secret_key = os.urandom(24)
我的 service_component 是:
import key_value_store
def dostuff():
val_i_want = key_value_store.provider["key"]
...和 key_value_store 看起来像:
from flask import session
class SessionProvider:
def __getitem__(self, key):
return session.get(key)
def __setitem__(self, key, value):
session[key] = value
provider = SessionProvider()
问题是当我运行程序时,我得到了错误:
RuntimeError:会话不可用,因为未设置密钥。将应用程序上的 secret_key 设置为唯一且保密的内容。
在我的网络应用程序文件中保留“会话”的使用是否有一些要求?是否有推荐的方法仍然让我保持组件的松散耦合/键/值对存储的抽象?
【问题讨论】:
-
你在哪里设置应用程序?你不需要
app = Flask()吗? -
@minboost - 是的,我复制/粘贴失败了,但修复了它。
标签: python python-3.x flask