我想设置一个环境变量DATABASE_URL
,我的Flask应用程序将读取该变量以连接到数据库。我使用set DATABASE_URL = '...'
,但是在执行flask run
时出现未设置变量的错误。为什么这行不通?
import os
from flask import Flask
from sqlalchemy import create_engine
app = Flask(__name__)
if not os.getenv("DATABASE_URL"):
raise RuntimeError("DATABASE_URL is not set")
engine = create_engine(os.getenv("DATABASE_URL"))
我导航到project1的安装目录,然后在Windows 10 cmd.exe中执行以下操作:
set FLASK_APP = application.py
set FLASK_DEBUG = 1
set DATABASE_URL = 'postgres.......' (the credential given by the Heroku account)
flask run
烧瓶运行,我转到localhost:5000
,并收到以下错误:
Traceback (most recent call last):
File "c:\program files\python36\lib\site-packages\flask\_compat.py", line 35, in reraise
raise value
File "C:\Program Files\Python36\learningPython\web_CS50\project1\application.py", line 12, in <module>
raise RuntimeError("DATABASE_URL is not set")
RuntimeError: DATABASE_URL is not set
答案 0 :(得分:0)
一个简单的尝试:
在Windows上,使用setx
而不是set
来修改系统环境变量。
setx FLASK_APP = application.py
启动新的命令处理器,以查看环境中反映的变量(在初始化外壳程序时设置这些变量)。
答案 1 :(得分:0)
只需从设置命令中删除空格
set FLASK_APP=application.py
set FLASK_DEBUG=1
set DATABASE_URL='postgres.......'
更多{@ {3}}
答案 2 :(得分:0)
set FLASK_APP=application.py
set FLASK_DEBUG=1
set DATABASE_URL='postgres.......' (WITHOUT THE QUOTATION MARKS, because the system put it automatically, I opened a notepad and set the password and copy paste and execute in powershell
答案 3 :(得分:0)
你需要在你的电脑的环境变量中设置你的路径。 你可以在这里找到你的python路径 C:\Users"你的默认用户名"\AppData\Local\Programs\Python\Python39。 设置路径后使用
答案 4 :(得分:-1)
就个人而言,当我使用烧瓶运行时,我遇到了一个问题。我收到此消息“无法将'flask'识别为内部或外部可操作程序或批处理文件”,这可能是问题所在。