Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy可以';t使用绝对路径连接到本地数据库_Python_Postgresql_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy可以';t使用绝对路径连接到本地数据库

Python SQLAlchemy可以';t使用绝对路径连接到本地数据库,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,在为POSTGRESQL程序配置了一个大写字母的用户并弄清楚如何在windows中写出abs路径而费尽周折之后: 设置数据库\u URL=postgresql:///c:\\程序文件\\PostgreSQL\\9.3\\data\\books.db (没有空格!我是通过艰苦的努力才学会的!) 在Windows中,我仍然难以连接到使用测试脚本创建的本地数据库 在PSQL中存在一个名为“books”的数据库,该数据库显示为“\z”。用于保存数据库的默认目录尚未从POSTGRESQL默认目录更改。但当

在为POSTGRESQL程序配置了一个大写字母的用户并弄清楚如何在windows中写出abs路径而费尽周折之后:
设置数据库\u URL=postgresql:///c:\\程序文件\\PostgreSQL\\9.3\\data\\books.db

(没有空格!我是通过艰苦的努力才学会的!)

在Windows中,我仍然难以连接到使用测试脚本创建的本地数据库

在PSQL中存在一个名为“books”的数据库,该数据库显示为“\z”。用于保存数据库的默认目录尚未从POSTGRESQL默认目录更改。但当我运行程序时:

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:\程序文件\PostgreSQL\9.3\data\books.db

Postgres是一个数据库服务器。您不能像那样直接连接到某个底层文件。您需要连接到Postgres数据库服务器提供的网络服务

下面显示了用于连接到Postgres数据库的可接受的SQLAlchemy URL

在为POSTGRESQL程序配置了一个大写字母的用户,并弄明白如何在windows中写出abs路径而费了不少功夫之后:set DATABASE_URL=postgresql:///c:\程序文件\PostgreSQL\9.3\data\books.db

Postgres是一个数据库服务器。您不能像那样直接连接到某个底层文件。您需要连接到Postgres数据库服务器提供的网络服务


显示了用于连接Postgres数据库的可接受的SQLAlchemy URL。

我更改了代码以反映链接的格式:
engine=create\u engine('postgresql://Robert:password@localhost/books')
其中user和password是正确的值,我得到了相同的错误。我还尝试以用户“postgres”的身份连接,但我得到了相同的错误。idk postgresql安装的目录与我正在使用的python文件不同。此外,出现了一些可能与此相关的问题:我能够从CLI中看到psql中的数据库:
psql-U postgres-h localhost
,但似乎无法连接到postgres执行
psql-U Robert-h localhost
,即使用户“Robert”在postgres中使用命令
\z
出现在角色列表中。如果您无法使用名称
Robert
和密码连接到
psql
,则表明您没有正确配置postgres端的内容。使用
postgres
用户尝试Python代码,看看是否可以连接。OK。我觉得自己像个笨蛋。显然,我创建了一个表,但没有创建数据库。我进入了psql,做了一个
创建表格的工作
然后用正确的set DATABASE_URL(user postgres)再次尝试,显然程序正在运行,尽管现在我正在解决另一个语法问题。。。终于进步了!谢谢,我更改了代码以反映您链接到的格式:
engine=create\u engine('postgresql://Robert:password@localhost/books')
其中user和password是正确的值,我得到了相同的错误。我还尝试以用户“postgres”的身份连接,但我得到了相同的错误。idk postgresql安装的目录与我正在使用的python文件不同。此外,出现了一些可能与此相关的问题:我能够从CLI中看到psql中的数据库:
psql-U postgres-h localhost
,但似乎无法连接到postgres执行
psql-U Robert-h localhost
,即使用户“Robert”在postgres中使用命令
\z
出现在角色列表中。如果您无法使用名称
Robert
和密码连接到
psql
,则表明您没有正确配置postgres端的内容。使用
postgres
用户尝试Python代码,看看是否可以连接。OK。我觉得自己像个笨蛋。显然,我创建了一个表,但没有创建数据库。我进入了psql,做了一个
创建表格的工作
然后用正确的set DATABASE_URL(user postgres)再次尝试,显然程序正在运行,尽管现在我正在解决另一个语法问题。。。终于进步了!谢谢你,伙计