无法从 Flask 执行 python 脚本

Unable to execute python script from Flask

我有一个 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 应用程序并调用页面 /batch21 时,我都会收到以下错误:

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

这是我第一次在 Python 中使用 API。我不确定我在这里遗漏了什么。

仅当脚本是调用的主要脚本时,if __name__ == '__main__': 语句才评估为 True,例如通过控制台启动。所以在这种情况下发生的所有事情只有在脚本是主要的情况下才会执行。

所以,这里发生的是当在 Flask 应用程序中调用函数 main() 时,您的变量 start_date 从未被初始化。

您可以通过将参数传递给您的函数 main() 来解决问题,例如 def main(start_date): 并在您的 Flask 应用程序中调用它,如下所示:fetch.main('01-JAN-14 00:00')