Различные способы запуска приложения колбы и настройки среды - PullRequest
0 голосов
/ 15 июня 2019

У меня есть следующее приложение, которое при запуске с использованием

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()?

1 Ответ

0 голосов
/ 15 июня 2019

Заменить app.secret_key присваивание произвольной строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...