【问题标题】:Sqlalchemy best practice for creating and naming sql tables based on new table creations基于新表创建创建和命名 sql 表的 Sqlalchemy 最佳实践
【发布时间】:2019-02-06 22:56:34
【问题描述】:

正如标题所示,我需要帮助来理解如何将新表链接到现有的 sqlalchemy 类,如果这是正确的理解的话。

dbstring = 'sqlite:///db.db'
engine = create_engine(dbstring)
Session = sessionmaker(bind=engine)
session = Session()

Base = declarative_base()
metadata = MetaData

class SomeTable(Base):
    __tablename__ = 'somename'
    table_id = Column(Integer, primary_key=True)
    value_a = Column(Float())
    value_b = Column(String())
    value_c = Column(Float())

我想使用该类来控制插入到未来表中的值。有没有办法使用 sqlalchemy 发出类似于以下格式的创建表命令:

table_named_foo = SomeTable(value_a = 12.3, value_b = 'bar', value_c = 45.6)
session.commit(table_named_foo)

【问题讨论】:

    标签: database python-3.x sqlite sqlalchemy


    【解决方案1】:

    IIUC 我相信问题是问为什么您能够将字符串类型的对象插入到定义为Float 的列中,反之亦然。这是因为 SQLLite 使用动态类型,并且允许您将任何类型放入列中,而不管它是如何定义的。

    查看这里了解更多信息:https://www.sqlite.org/faq.html#q3

    在 PostgreSQL 中试试这个,你可能会得到你所期望的行为

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 2012-03-29
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      相关资源
      最近更新 更多