如果我通過命令“flask run”運行我的 Flask 應用程式,不僅會忽略 app.run 中的引數(使除錯器為 false 并選擇默認埠 5000),還會對腳本進行更改,例如將 url_prefix 更改為“/意見”。當我在進行更改后保存腳本時,cmd 提示符甚至不會回應。這樣,更改僅在停止腳本然后再次運行后才有效。
當應用程式腳本通過 VSCode 命令(Ctrl F5 或播放按鈕)運行時,不會發生這種情況:通過這些命令,腳本按寫入的方式執行,并且在保存腳本后立即識別更改。
為什么呢?
from flask import Flask
from views import views
app = Flask(__name__)
app.register_blueprint(views, url_prefix="/")
if __name__ == '__main__':
app.run(debug=True, port=8000)
C:\Users\*******\Documents\flask_quick_website>flask run
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL C to quit)
uj5u.com熱心網友回復:
該flask可執行作品通過匯入app從您的代碼的物件。這類似于像 gunicorn 這樣的 WSGI 服務器的作業方式(如果不確定,請研究這是什么)。
至于當您使用 VSCode 運行腳本時,或者實際上,如果您python通過運行python app.py或類似方式使用可執行檔案啟動,那么if __name__ == '__main__':塊內的任何內容都會被執行,在您的情況下是app.run呼叫。
另請注意,您的app.run呼叫已傳遞debug=True引數。如果您調查 Flask 源代碼,在run函式內部,use_reloader引數設定為與此相同的值,debug在這種情況下,如果 debug 為 ,則自動重新加載器運行True。
那么如何讓自動重新加載器與flask命令一起作業呢?傳遞--reload旗幟:
flask run --reload
您也可以設定環境development以實作相同的目的。在窗戶上:
> set FLASK_ENV=development
> flask run
有關更多資訊,請參閱環境和除錯功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/325046.html
上一篇:從資料框中繪制散點圖和圖例
下一篇:網頁抓取回傳“無”
