我有一个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。我不确定我在这里错过了什么。
这个 if __name__ == '__main__': 语句评估为 True 仅当脚本是调用的主脚本时,例如通过控制台启动。因此,只有当脚本是主脚本时,才会执行在此条件下发生的所有事情。
if __name__ == '__main__':
True
start_date 当函数 main() 在你的烧瓶应用程序中调用。
start_date
main()
您可以通过向函数传递参数来解决此问题 main() ,例如 def main(start_date): 然后在你的Flask应用程序中调用它,如下所示: fetch.main('01-JAN-14 00:00')
def main(start_date):
fetch.main('01-JAN-14 00:00')