config.py 没有发回 DATABASE_URL

config.py did not send back DATABASE_URL

我的config.py:

"""Flask config."""
import os
from dotenv import dotenv_values

basedir = os.path.abspath(os.path.dirname(__file__))

configuration = dotenv_values(".env")

class Config(object):
    DEBUG = False
    TESTING = False
    CSRF_ENABLED = True
    SECRET_KEY = os.environ.get('SECRET_KEY')
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')

class ProductionConfig(Config):
    DEBUG = False

我正在尝试使用另一个 py 文件连接到数据库:

import psycopg2
import xlrd
from config import Config


POSTGRES = Config.SQLALCHEMY_DATABASE_URI
connection = psycopg2.connect(POSTGRES)
cursor = connection.cursor()

但是 POSTRES 是 None

我的 .env 文件在同一个目录中,如下所示:

FLASK_APP=wsgi.py
FLASK_ENV=development
SECRET_KEY=randomstringofcharacters
DATABASE_URL='postgresql://xxx:xxxxx@127.0.0.1:5432/xxxxx'

我的所有文件都在同一目录中。

dotenv_values() 不会对本地环境产生副作用。您需要 load_dotenv(),这确实需要。

https://pypi.org/project/python-dotenv/#load-configuration-without-altering-the-environment