Невозможно выполнить скрипт Python из Flask - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть приложение Flask, которое выполнит другой скрипт на Python в фоновом режиме и получит данные из базы данных, которые будут отображаться пользователю.Сценарий не выполняется, так как он не может инициализировать локальные переменные.

FetchAPI.py

import FetchDataFor_P_NAME as fetch
from flask import Flask
app = Flask(__name__)

@app.route('/batch21')
def fetchBatch21Data():
    return fetch.main()

if __name__ == '__main__':
    app.run()

FetchDataFor_P_NAME.py

def main():
    '''some statements to fetch data using the start_date'''
    query = query.replace('?', "'" + start_date + "'")

if __name__ == '__main__':
    '''some statements'''
    start_date = '01-JAN-14 00:00'
    main()

Всякий раз, когда я запускаю приложение Flask и вызываю страницу / пакет 21, я получаю следующую ошибку:

query = query.replace('?', "'" + start_date + "'")
NameError: name 'start_date' is not defined

Я впервые работаю с API в Python.Я не уверен, что мне здесь не хватает.

1 Ответ

0 голосов
/ 26 ноября 2018

Оператор if __name__ == '__main__': оценивается как True, только если основной сценарий вызван, например, запуск через консоль.Таким образом, все, что происходит при этом условии, выполняется, только если сценарий является основным.

Итак, что здесь происходит, так это то, что ваша переменная start_date никогда не инициализируется, когда в вашем приложении Flask вызывается функция main().

Вы можете обойти эту проблему, передав аргумент вашей функции main(), например def main(start_date):, и вызвать его в своем приложении Flask следующим образом: fetch.main('01-JAN-14 00:00').

...