首页 文章

sqlalchemy显示与os.getenv()相关的错误

提问于
浏览
-3

我正在研究 sqlalchemy 并且它的引擎中有命令 - create_engine(os.getenv("DATABASE_URL")) .

当我运行该程序时,它显示错误说 -

“无法解析字符串'C:\ Program Files \ PostgreSQL \ 10 \ data”中的rfc1738 URL

Code

import os

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

#engine = create_engine('sqlite://')
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))

def main():
  flights = db.execute("SELECT origin, destinaiton, duration FROM      flights").fetchall()
  for flights in flights:
    print(f"{flight.origin} to {flight.destination}, {flight.duration} minutes.")

if __name__ == "__main__":
  main()

Error

Traceback(最近一次调用最后一次):文件“list.py”,第7行,在engine = create_engine(os.getenv(“DATABASE_URL”))文件“C:\ Users \ Amber Bhanarkar \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ sqlalchemy \ engine__init __ . py“,第424行,在create_engine中返回strategy.create(* args,** kwargs)文件”C:\ Users \ Amber Bhanarkar \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ sqlalchemy \ engine \ strategies.py“,第50行,在create u = url.make_url(name_or_url)文件”C:\ Users \ Amber Bhanarkar \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ sqlalchemy \ engine \ url.py“,第211行,在make_url中返回_parse_rfc1738_args(name_or_url)文件”C:\ Users \ Amber Bhanarkar \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site- packages \ sqlalchemy \ engine \ url.py“,第270行,在_parse_rfc1738_args中”无法解析字符串'%s'中的rfc1738 URL“%name”sqlalchemy.exc.ArgumentError:无法从字符串'C:\ Program解析rfc1738 URL文件\ PostgreSQL的\ 10 \数据”

请有人帮我解决这个问题 .

2 回答

  • 0

    我现在也在观看cs50的课程视频 . 你应该尝试使用 create_engine("your_database_url") .

    如果您仍想使用 create_engine(os.getenv("DATABASE_URL")) tp进程,请确保您可以使用命令行登录,如 psql $DATABASE_URL .

  • 1

    引擎URL不应该是本地Postgres安装的路径,而是告诉SQLAlchemy如何连接到数据库的sting . 它具有以下格式:

    postgresql://username:password@server:port/databasename
    

相关问题