![](/img/trans.png)
[英]When FLASK_ENV=development, Werkzeug does not log HTTP requests
[英]Why does from flask.cli import main fail when I set FLASK_ENV?
我已經按照這里的描述在虛擬環境中安裝了 Flask https://flask.palletsprojects.com/en/1.1.x/installation/#install-create-env
然后我創建了一個像這里描述的腳本https://flask.palletsprojects.com/en/1.1.x/quickstart/
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
然后我添加了 export FLASK_APP=hello.py 並運行了 python3 -m flask run ,效果很好
python3 -m flask run
* Serving Flask app "hello.py"
* 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)
但是當我更改 FLASK_ENV=development 並運行相同的命令時,我收到一個錯誤
python3 -m flask run
* Serving Flask app "hello.py" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
/usr/local/opt/python/bin/python3.7: No module named flask
我取消設置 FLASK_ENV 並再次運行相同的命令,一切都像我第一次這樣做時一樣。
好吧,一種解決方案可能是不設置任何環境變量並僅使用 python 運行 Flask。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
然后你只需通過source env/bin/activate
激活虛擬環境,然后運行python main.py
。
您還可以通過執行app.config['FLASK_ENV'] = 'development'
在您的代碼中設置燒瓶環境,但我不推薦它,因為如果您要將 Flask 應用程序部署到 Heroku 或 GCP 等平台,它是不會按預期工作。
另一種方法是在根目錄的.flaskenv
文件中設置環境變量:
$ touch .flaskenv
然后在.flaskenv
定義你的環境變量:
FLASK_APP=main.py
FLASK_ENV=development
FLASK_DEBUG=True
安裝python-dotenv
以幫助加載環境變量:
$ pip3 install python-dotenv
在您的終端上,運行:
$ flask run
每次對應用程序進行更改時,自動重新加載都應該起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.