我正在尝试使用Python Flask构建y第一个web服务。我无法理解每次运行我的应用程序时Flask使用重新加载器发出重启的含义是什么。
这是我的代码。
#!venv/bin/python
from flask import Flask
from flask import request
def buildCache():
print 'Hello World'
buildCache()
app = Flask(__name__)
@app.route('/search')
def index():
query = request.args.get('query','', type=str);
return query
if __name__ == '__main__':
app.run(debug = True)
我跑的时候
venv/bin/python ./app.py
Hello World
* Running on http://127.0.0.1:5000/
* Restarting with reloader
Hello World
我不明白为什么buildCache方法被调用两次?这似乎与"重新装载'有关,这意味着什么?如何确保buildCache仅在服务器启动之前执行一次。
答案 0 :(得分:10)
这"重新加载"每当您进行更改时代码,以便您不必手动重新启动应用程序以查看更改。当您经常进行更改时非常有用。
您可以通过将debug参数设置为False来关闭重新加载。
app.run(debug=False)
" [如果debug=True
]调试器将在发生未处理的异常时启动,并且如果检测到代码中的更改,集成服务器将自动重新加载应用程序。"
答案 1 :(得分:1)
来自烧瓶文档:
如果启用调试支持,服务器将在代码更改时重新加载, 如果出现问题,它还会为您提供有用的调试器。
请参阅this。
尝试启动应用程序,然后执行touch app.py
,如果启用调试模式,服务器将重新加载应用程序。