我正在研究 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 回答
我现在也在观看cs50的课程视频 . 你应该尝试使用
create_engine("your_database_url")
.如果您仍想使用
create_engine(os.getenv("DATABASE_URL"))
tp进程,请确保您可以使用命令行登录,如psql $DATABASE_URL
.引擎URL不应该是本地Postgres安装的路径,而是告诉SQLAlchemy如何连接到数据库的sting . 它具有以下格式: