存储数据库位置和凭证变量Python/Flask app

存储数据库位置和凭证变量Python/Flask app,python,postgresql,flask,Python,Postgresql,Flask,我正在学习构建Python/Flask应用程序的在线教程。在我安装Postgres并弄乱我的数据库之前,我可以从命令行启动我的应用程序,没问题。现在,每次重新启动命令提示符时,我都必须重新定义APP_设置和DATABASE_URL变量。在我细化变量后,应用程序运行良好,但我知道这不是它应该运行的方式。错误如下: Traceback (most recent call last): File "app.py", line 12, in <module> app.config.fr

我正在学习构建Python/Flask应用程序的在线教程。在我安装Postgres并弄乱我的数据库之前,我可以从命令行启动我的应用程序,没问题。现在,每次重新启动命令提示符时,我都必须重新定义APP_设置和DATABASE_URL变量。在我细化变量后,应用程序运行良好,但我知道这不是它应该运行的方式。错误如下:

 Traceback (most recent call last):
 File "app.py", line 12, in <module>
 app.config.from_object(os.environ['APP_SETTINGS'])
 File "C:\envs\acme\lib\os.py", line 423, in __getitem__
 return self.data[key.upper()]
 KeyError: 'APP_SETTINGS'
下面是我用于app.py和config.py的代码

config.py:

import os
# default config
class BaseConfig(object):
    DEBUG = False
    SECRET_KEY = 'secret key'
    SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL']

class DevelopmentConfig(BaseConfig):
    DEBUG = True

class ProductionConfig(BaseConfig):
    DEBUG = False
app.py

import os
app.config.from_object(os.environ['APP_SETTINGS'])
上述config.py文件中列出的DATABASE_URL变量也是如此。我还收到一个KEYERROR,必须使用“set”重新定义变量,并在下面键入我的用户名和密码:

set DATABASE_URL=postgres://username:password@localhost/discover_flask_dev
我正在使用Windows8和Python2.7。我的环境中安装了以下工具:

Flask==0.10.1
Flask-SQLAlchemy==2.0
Jinja2==2.7.3
MarkupSafe==0.23
SQLAlchemy==0.9.8
Werkzeug==0.9.6
gunicorn==19.1.1
ipython==2.3.0
itsdangerous==0.24
psycopg2==2.5.2
pyreadline==2.0

我假设有一个基本的方法来解决我上面提到的问题。请给我一些建议。谢谢

您的关键问题似乎是“每次重新启动命令提示符时,我都必须重新定义应用程序设置和数据库URL变量”

从中,看起来有两个环境变量命令:SET(在命令窗口关闭时恢复)和SETX(在命令窗口关闭后保持)

而不是
设置数据库\u URL=postgres://username:password@localhost/discover\u flask\u dev

尝试使用
setx数据库\u URL”postgres://username:password@localhost/discover\u flask\u dev“


注意稍微不同的语法:SETX使用双引号
”。“
,不使用equals
=

我按照你说的做了,也开始使用Git Bash,问题就解决了。谢谢伟大的如果您想表明此答案解决了问题,请单击绿色复选标记接受它。
Flask==0.10.1
Flask-SQLAlchemy==2.0
Jinja2==2.7.3
MarkupSafe==0.23
SQLAlchemy==0.9.8
Werkzeug==0.9.6
gunicorn==19.1.1
ipython==2.3.0
itsdangerous==0.24
psycopg2==2.5.2
pyreadline==2.0