当前位置: 首页 > 知识库问答 >
问题:

如何使用create_engine在sqlalchemy中使用数据库?

黄啸
2023-03-14

现在;我得到以下错误:

    ProgrammingError: (psycopg2.ProgrammingError) relation "tableName" does not exist
    LINE 2: FROM tableName

我以为这是因为我没有在会话中使用那个数据库;所以我去处理使用session.execute并使用sql语句use来使用数据库,但它给我带来了语法错误

engine = create_engine('postgresql://postgres:passwordhere@localhost:5432/test1')

sa.orm.configure_mappers()  # IMPORTANT!
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)()
session.connection().connection.set_isolation_level(0)
session.execute('USE DATABASE test1;')
session.connection().connection.set_isolation_level(1)
 cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near "USE"
LINE 1: USE DATABASE test1;
        ^
 [SQL: 'USE DATABASE test1;'] (Background on this error at: http://sqlalche.me/e/f405)

check_if_exists=session.query(latest_movies_scraper).filter_by(name=dictionary['title']).first()

 if check_if_exists:
                    print check_if_exists.name
                    print 'skipping this...'
                    pass
                else:
                    insert_to_db = latest_movies_scraper(name=dictionary['title'], url=dictionary['href'], image_url=dictionary['featured_image'])
                    session.add(insert_to_db)
                    session.commit()   

class latest_movies_scraper(Base):
    __tablename__ = 'latest_movies_scraper'


    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.Unicode(255))
    url = sa.Column(sa.Unicode(255))
    image_url = sa.Column(sa.Unicode(255))
    create = sa.Column(sa.DateTime, default=datetime.datetime.utcnow)
    search_vector = sa.Column(TSVectorType('name'))

共有1个答案

孟征
2023-03-14
mssql+pyodbc://servername/Databasename?driver=ODBC Driver 13 for SQL Server
eng = create_engine(mssql+pyodbc://servername/Databasename?driver=ODBC Driver 13 for SQL Server)

Session = sessionmaker(bind=eng, autoflush=false)
db = Session()

对于select use db.query(“select*from tableName”),还可以使用db.execute(“select query”)

 类似资料:
  • 问题内容: 使用SQLAlchemy,将创建一个Engine对象,如下所示: 如果to参数(在这种情况下为)中指定的数据库不存在,则访问将失败。如果指定的数据库不存在,是否可以告诉SQLAlchemy创建一个新数据库? 问题答案: 在postgres上,通常默认情况下存在三个数据库。如果您能够以超级用户身份(例如,角色)进行连接,则可以连接到或数据库。默认的pg_hba.conf只允许名为unix

  • 问题内容: 我想将大量条目(〜600k)上传到PostgreSQL DB的一个简单表中,每个条目有一个外键,一个时间戳和3个浮点数。但是,每个条目要花费60毫秒才能执行此处所述的核心批量插入操作,因此整个执行过程将花费10个小时。我发现,这是方法的性能问题,但是已经用psycopg2 2.7中 的方法解决了。 我运行的代码如下: 我看到这是一个常见问题,但是我还没有设法在sqlalchemy本身中

  • 我目前正在构建一个项目,其中我需要为每个用户保存一个字符串列表(他阅读的文章的网址)。 我正在使用带有sqlite的python烧瓶SQLalchemy。 我知道sqlite不支持数组,所以我正在考虑切换到另一个数据库,而不是sqlite,一个支持数组的数据库。 我想知道你会怎么做?哪个数据库支持数组,或者是否有更好的解决方法。

  • 问题内容: 我已阅读flask-sqlalchemy或sqlalchemy,它们建议将flask-sqlalchemy与flask一起使用。我想遵循这种方法。 但是,我有一个为命令行脚本编写的现有模型,该模型基于sqlalchemy的declarative_base,例如, 我希望仍然可以在此模型中使用命令行脚本,但也希望围绕该模型构建Web应用程序。 有没有办法扩展现有模型,以获得使用flask

  • 我有一个烧瓶应用程序,与MySQL使用sqlalChemy连接。DB查询时发生奇怪的错误。 `回溯(最近一次调用):文件“/home/Desktop/work/nesting app/env/lib/python3.8/site packages/sqlalchemy/util/_collections.py”,第1008行,调用返回self。注册表[key]键错误: 在处理上述异常期间,发生了另

  • 问题内容: 如何在python中使用sqlalchemy重写以下sql语句。我一直在搜索30分钟,但仍然找不到任何解决方案。 要么 提前致谢 问题答案: SQLAlchemy日期自动映射到Python日期时间对象,因此您应该能够执行以下操作: