gpt4 book ai didi

python - 是否可以从 views.py 中的 __init__.py 导入变量?

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:17 25 4
gpt4 key购买 nike

我有一个 flask 应用程序,我在其中对一些数据进行了一些分析,并根据该数据绘制了一些图表。然而,到目前为止,我一直在我的 views.py 文件中,在我的索引方法中执行图表的分析和绘制。这不是很好,因为每次我在浏览器中执行“刷新”时,它都会重新进行整个分析并重新绘制图表。

我的项目结构如下:

Data Analysis/
- app/
- static/
- templates/
- base.html
- index.html
- __init__.py
- models.py
- views.py
- venv/
- run.py
- config.py

我考虑将我的数据分析移动到我的 __init__.py 模块,因为这将导致在应用程序运行后只计算所需的数据,而不是在每次刷新时重新运行它。我遇到的障碍实际上是从我的 __init__.py 模块导入我在 views.py 模块中需要的数据。

这是怎么做到的?

我试过以下方法:

__初始化__.py

from flask import Flask, url_for, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)

def do_data_analysis():
#... lots of calculations

return data

VALUES = do_data_analysis()

View .py

from app import app, models, __init__ #does not work
from __init__ import VALUES #does not work
import VALUES #does not work
from app import VALUES # does not work
VALUES = __init__.VALUES #does not work

是否有另一种可能更合适的方法来做到这一点?

编辑:

我已经设法通过创建一个模块 (data_analysis.py) 使其正常工作,我在其中执行所有数据分析。这也意味着在我的 __init__.py 中我删除了数据分析,现在我的 view.py 中有以下内容:

from app import data_analysis

现在我可以:

GPSVALUES = data_analysis.VALUES
#do something with the values..

但是它似乎确实运行了两次脚本。首先是启动我的 run.py。然后当第一个请求进来时再次。它似乎只在启动 run.py 时才运行脚本。如果刷新页面,它不会重新运行脚本,这正是我首先想要的。因此,我认为除非没有其他解决方案出现,否则我将采用此解决方案。(我会在完成更多测试后立即添加答案)

最佳答案

尝试

import __init__
VALUES = __init__.VALUES

from app import app, models, __init__ 

失败,因为如果 app 不在您的范围内,您将无法导入。

from __init__ import VALUES

失败,因为 VAULES 是一个变量而不是模块/函数。

import VALUES

失败是因为……没有VALUES模块。

关于python - 是否可以从 views.py 中的 __init__.py 导入变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com