[英]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 App中像這樣調用它: fetch.main('01-JAN-14 00:00')
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.