필자는 일부 데이터를 분석하고 그 데이터를 기반으로 그래프를 그리는 플라스크 애플리케이션을 사용합니다. 그러나 지금까지 필자는 내 index.py 파일의 그래프 분석 및 그리기를 수행했습니다. 이것은 브라우저에서 "새로 고침"을 수행 할 때마다 전체 분석을 다시 실행하고 그래프를 그릴 때마다 매우 좋지 않습니다. 다음과 같이views.py에서 __init__.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 모듈에 필요한 데이터를 가져 오는 것입니다.
어떻게 처리하나요?
__init__.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()
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()
views.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
)하는 내 모든 데이터 분석을 수행하고를 작성하여 작업 얻을 관리했습니다
.
이제from app import data_analysis
은 내가 할 수있는 :
GPSVALUES = data_analysis.VALUES
#do something with the values..
그것은 그러나에 보인다 이것은 또한 내 에 도착하면 다시 그것은 __init__.py
에 내 데이터 분석을 제거하고 난 지금 대신 view.py
내에서 다음을 가지고 있음을 의미 하는가 스크립트를 두 번 실행하십시오. 처음에 내 run.py
의 시작. 첫 번째 요청이run.py
시작에서만 스크립트를 실행하는 것 같습니다. 페이지가 새로 고쳐지면 처음부터 원했던 스크립트를 다시 실행하지 않습니다. 그러므로 나는 내가 다른 솔루션에서 제공하지 않는 한이 솔루션과 함께 갈거야 생각합니다.
귀하의 전제는 결함이있다. '__init__'에 코드를 두는 것은 단지 한번만 실행된다는 것을 의미합니다. 당신은 views.py에서 모듈 수준으로두면 같은 효과를 얻을 수 있습니다. –
내 views.py와 동일한 폴더 수준에서 데이터 분석을위한 보조 모듈을 만들려면 어딘가에 실행해야합니다. 내가 내 views.py에서 그것을 실행한다면, 그것은 내 문제를 해결하지 못한다. – Zeliax
모듈 수준에서 실행하면 가능합니다. –