我有以下应用,当我使用它运行时
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
文件中注入环境变量
顺便说一句,在第一种情况下,应用程序启动没有错误,我看不到用于调试的print
语句。
如果在flask run
的情况下未调用if __name__ == '__main__'
下面的代码,我该如何通过调用db.create_all()
来初始化数据库?
答案 0 :(得分:0)
用任意字符串替换app.secret_key
赋值。