代码之家  ›  专栏  ›  技术社区  ›  Rishik Mani

无法从Flask执行python脚本

  •  0
  • Rishik Mani  · 技术社区  · 6 年前

    我有一个Flask应用程序,它将在后台执行另一个python脚本,并从数据库中获取数据以显示给用户。脚本失败,因为它无法初始化局部变量。

    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应用程序并调用page/batch21时,我都会得到以下错误:

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Lescurel    6 年前

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

    start_date 当函数 main() 在你的烧瓶应用程序中调用。

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