У меня есть следующее приложение, которое при запуске с использованием
flask run
, кажется, выполняется без ошибок, но при выполнении python app.py
выдает следующую ошибку:
➣ $ python app.py
Traceback (most recent call last):
File "app.py", line 14, in <module>
app.secret_key = os.environ['SECRET_KEY']
File "/Users/pkaramol/Workspace/second_flask/venv/bin/../lib/python3.7/os.py", line 678, in __getitem__
raise KeyError(key) from None
KeyError: 'SECRET_KEY'
#!/usr/bin/env python
import os
from flask import Flask
from flask_jwt import JWT, jwt_required
from flask_restful import Api
from flask_sqlalchemy import SQLAlchemy
import settings
from resources.item import Item, ItemList
app = Flask(__name__)
api = Api(app)
app.config.from_pyfile('settings.py')
app.secret_key = os.environ['SECRET_KEY']
db = SQLAlchemy(app)
if __name__ == "__main__":
print("Starting flask app...")
print(os.end['SECRET_KEY'])
db.create_all()
api.add_resource(Item, '/item/<string:name>')
api.add_resource(ItemList, '/items')
В чем разница между двумя способами запуска приложения flask
и почему во втором случае среда не отображается надлежащим образом?
Я использую python-dotenv
для ввода переменных env из файла .env
Кстати, в первом случае, когда приложение запускается без ошибок, я не вижу оператора print
, который я использую для отладки.
и если в случае flask run
код ниже if __name__ == '__main__'
не вызывается, как я инициализирую свою базу данных, вызывая db.create_all()
?