Запущенный Flask в Windows не видит переменную среды - PullRequest
0 голосов
/ 21 октября 2018

Я хочу установить переменную среды 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"))

Я перехожу в установленный каталог для проекта1 и в 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 

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Просто удалите пробелы из команды set

set FLASK_APP=application.py
set FLASK_DEBUG=1
set DATABASE_URL='postgres.......'

Больше на https://ss64.com/nt/set.html

0 голосов
/ 21 октября 2018

Быстрая идея:

  1. В Windows используйте setx вместо set для изменения системных переменных среды.

    setx FLASK_APP = application.py

  2. Запустите новый командный процессор, чтобы увидеть переменные, отраженные в вашей среде (они устанавливаются при инициализации оболочки).

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