Как я могу запустить кусок кода при запуске внутри приложения flask и импортировать созданные переменные в другой файл py внутри проекта? - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть приложение flask внутри python проекта, например:

import #stuff

app = Flask(__name__)

app.config['JSON_SORT_KEYS'] = False

if os.environ.get('VCAP_SERVICES'):
    @property
    def specs_url(self):
        return url_for(self.endpoint('specs'), _external=True, _scheme='https')

    Api.specs_url = specs_url

api = Api(app, version='1.0', title='IBM_RECOMMENDER', description='An IBM Recommender System for customer web remark responses')

port = 8080#int(os.getenv('PORT', os.environ['PORT']))

model_parameters = #stuff

parser = api.parser()
parser.add_argument('body', type=json, required=True, help='json content', location='json')

@api.route('app')
class app_name(Resource):

    def get(self):
        return {}

    @api.expect(model_parameters)
    def post(self):
        req = api.payload
        if not req:
            req = request.get_json(force=True)
        try:

           #do stuff
                except Exception as e:
            print(Exception, e)
            exc_type, exc_obj, exc_tb = sys.exc_info()
            fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
            print(exc_type, fname, exc_tb.tb_lineno)
            response = {
                'app_name': '-1'
            }
            return jsonify(response)

if __name__ == '__main__':

    app.run(host='0.0.0.0', port=port, debug=True)

Мне нужно вызвать второй скрипт с именем data.py, который выполняет множество операций и создает некоторые переменные, которые я мне нужно работать с третьим скриптом с именем workhorse.py.

data.py требуется некоторое время для запуска, поэтому я хочу, чтобы он запускал эти операции при запуске приложения и затем передавал переменные, созданные в data.py, в workhorse.py.

Я пытался вызвать data.py из app.py и импортировать эти переменные напрямую из workhorse.py, но затем все эти операции выполняются в al oop каждый раз, когда я вызываю приложение из чванливый интерфейс. Я как бы застрял здесь и для меня очень важно, чтобы это работало. Пожалуйста, помогите мне с этим, я буду очень признателен за вашу помощь.

Не стесняйтесь просить дополнительную информацию, если вам это нужно.

Большое спасибо заранее

...