加载并保持变量/对象在python Flask服务器中的文件之间可访问 - python

当启动我的flask应用程序时,我希望它立即加载一个对象,并且希望该对象可用于其他文件中定义的功能。

现在设置的方式如下:

object = someObjectToLoadAtServerStartAndAlwaysKeepInMemoryAndAccessFromAnyPyFile

在run.py中,位于文件夹Project中:

from app import app
app.run(debug = True)

在__init__.py中,位于Project / app中:

from flask import Flask
app = Flask(__name__)
from app import views

在位于Project / app中的views.py中:

from app import app
@app.route('/page')
def func():
  #access preloaded variable here#

请注意,我希望在启动应用程序后立即加载对象(保存到文件中),并在应用程序运行时将其永久保存。我已经尝试了许多方法,可以在任何地方定义对象,并使用global,但是func()永远无法访问它。

如果我在views.py上定义它,即使没有人使用@ app.routes之一,它也会加载吗?

参考方案

好吧,在将__init.py__更改为__init__.py之后,这将起作用:

文件树:

Project
├── app
│   ├── __init__.py
│   └── views.py
└── run.py

run.py:

from app import app
app.run(debug = True)

app / __ init__.py:

from flask import Flask
app = Flask(__name__)
from app import views

app / views.py:

from app import app
@app.route('/page')
def func():
    return 'Hello'

这是一个演示:

加载并保持变量/对象在python Flask服务器中的文件之间可访问 - python

加载并保持变量/对象在python Flask服务器中的文件之间可访问 - python

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…