在让POSTGRESQL程序配置为一个大写字母的用户并找出如何在windows中写出abs路径时,经过了许多麻烦:
set DATABASE_URL=postgresql:///c:\\Program Files\\PostgreSQL\\9.3\\data\\books.db
(没有空格!我是在艰苦的道路上学会的!)
在Windows中,我仍然很难连接到用测试脚本创建的本地数据库。
在PSQL中,存在一个名为“书”的数据库,该数据库与“\z”一起出现。用于保存数据库的默认目录尚未从POSTGRESQL default更改。但当我运行程序时:

import csv
import os

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

engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))


def import_csv():
    f = open("books.csv")
    reader = csv.reader(f)
    for isbn, title, author, year in reader:
        db.execute("INSERT INTO books (isbn, title, author, year) VALUES (:isbn, :title, :author, :year)",
                    {"isbn":isbn, "title":title, "author":author, "year":year})
    db.commit()

import_csv()

为什么这没有联系?(我在这里删掉了很多无关的代码,以显示我正在处理的活动部分)

最佳答案

在让POSTGRESQL程序配置为一个带大写字母的用户,并找出如何在windows中写出abs路径的过程中,我们经历了许多麻烦:set DATABASE_URL=POSTGRESQL:///c:\ program Files\POSTGRESQL\9.3\data\books.db
Postgres是一个数据库服务器。你不能像那样直接连接到一个底层文件。您需要连接到Postgres数据库服务器提供的网络服务。
连接Postgres数据库的可接受SQLAlchemy url显示here

07-27 19:49