SQLAlchemy 0.5.5定义表模式

2024-06-17 08:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用sqlautocode生成模型.py对于现有的MySQL数据库,下面是一个表示例:

fusion_articles =  Table('fusion_articles', metadata,
    Column(u'article_id', Integer(), primary_key=True, nullable=False),
            Column(u'article_cat', Integer(), primary_key=False, nullable=False),
            Column(u'article_subject', String(length=200, convert_unicode=False, assert_unicode=None), primary_key=False, nullable=False),
            Column(u'article_snippet', Text(length=None, convert_unicode=False, assert_unicode=None), primary_key=False, nullable=False),
            Column(u'article_article', Text(length=None, convert_unicode=False, assert_unicode=None), primary_key=False, nullable=False),
            Column(u'article_breaks', CHAR(length=1, convert_unicode=False, assert_unicode=None), primary_key=False, nullable=False),
            Column(u'article_name', Integer(), primary_key=False, nullable=False),
            Column(u'article_datestamp', Integer(), primary_key=False, nullable=False),
            Column(u'article_reads', Integer(), primary_key=False, nullable=False),
            Column(u'article_allow_comments', Boolean(), primary_key=False, nullable=False),
            Column(u'article_allow_ratings', Boolean(), primary_key=False, nullable=False),


    )

我看到的一些示例在ColumnInteger()和其他类似的数据类型前面加上schema,这是从sqlalchemy导入的。我是否应该分别导入Column和其他内容,例如:

^{pr2}$

还是我应该一直给它们加前缀?在

schema.Tablemeta.metadata


Tags: keynonefalseconvertarticletableunicodecolumn
1条回答
网友
1楼 · 发布于 2024-06-17 08:25:35

这在很大程度上是一种风格偏好,但也取决于代码的复杂程度。在

如果您正在编写一个可能不会导入到其他地方的简短、独立的脚本,那么在您的名称空间(即表、列)中引入大量的名称不是问题,而且可以使代码更易于阅读。在

另一方面,如果您希望您的模块很大并且由其他模块或第三方导入,那么您希望尽可能保持名称空间的干净。将表和元数据类放在一个单独的命名空间中可以使它们保持组织和明确的范围。也就是说,如果您使用的是模式名称空间,您可以清楚地知道这一点

>>> schema.Table

引用架构模块中的表,而不是其他地方定义的另一个表。在

否则,对象完全相同。在

^{pr2}$

相关问题 更多 >