我正在使用sqlalchemy。我在处理和粘贴示例代码时遇到操作错误

时间:2019-02-17 01:21:28

标签: python sqlalchemy

我只是想开始使用sqlalchemy。无论出于什么原因,我什么都做不了。

我安装了sqlalchemy,仅导入即可。我试图开始遵循此站点上的代码:

https://www.pythoncentral.io/introductory-tutorial-python-sqlalchemy/

代码如下:

import os
import sys
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine

Base = declarative_base()

class Person(Base):
    __tablename__ = 'person'
    # Here we define columns for the table person
    # Notice that each column is also a normal Python instance attribute.
    id = Column(Integer, primary_key=True)
    name = Column(String(250), nullable=False)

class Address(Base):
    __tablename__ = 'address'
    # Here we define columns for the table address.
    # Notice that each column is also a normal Python instance attribute.
    id = Column(Integer, primary_key=True)
    street_name = Column(String(250))
    street_number = Column(String(250))
    post_code = Column(String(250), nullable=False)
    person_id = Column(Integer, ForeignKey('person.id'))
    person = relationship(Person)

# Create an engine that stores data in the local directory's
# sqlalchemy_example.db file.
engine = create_engine('sqlite:///sqlalchemy_example.db')

# Create all tables in the engine. This is equivalent to "Create Table"
# statements in raw SQL.
Base.metadata.create_all(engine)

我复制并粘贴了代码以创建表,但出现以下错误

  

sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)无法   打开数据库文件(有关此错误的背景,位于:   http://sqlalche.me/e/e3q8

我去了http://sqlalche.me/e/e3q8,似乎相信将pool_pre_ping = True添加到引擎将有助于解决问题。它提到了一个连接问题,但是由于它只是创建sqlite数据库,所以并没有真正理解该怎么做。

对于如何解决此问题的任何建议,我将非常感谢。

编辑:我在问题中输入了特定的代码。

我也尝试在pythonanywhere中执行代码,它按预期工作。任何有关我的机器可能出问题的指导都将不胜感激。

1 个答案:

答案 0 :(得分:0)

因此,无论出于何种原因,我都需要指定数据库所需的绝对路径。我将引擎更新为:

sqlite:/// C:\ user \ file_path \ test.db

这允许它创建数据库。但是,我真的更喜欢只在当前目录中创建数据库。如果有人知道我需要做些什么来使它正常工作,那就太好了。