我使用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),
)
我看到的一些示例在Column
、Integer()
和其他类似的数据类型前面加上schema
,这是从sqlalchemy
导入的。我是否应该分别导入Column
和其他内容,例如:
还是我应该一直给它们加前缀?在
schema.Table
,meta.metadata
这在很大程度上是一种风格偏好,但也取决于代码的复杂程度。在
如果您正在编写一个可能不会导入到其他地方的简短、独立的脚本,那么在您的名称空间(即表、列)中引入大量的名称不是问题,而且可以使代码更易于阅读。在
另一方面,如果您希望您的模块很大并且由其他模块或第三方导入,那么您希望尽可能保持名称空间的干净。将表和元数据类放在一个单独的命名空间中可以使它们保持组织和明确的范围。也就是说,如果您使用的是模式名称空间,您可以清楚地知道这一点
引用架构模块中的表,而不是其他地方定义的另一个表。在
否则,对象完全相同。在
^{pr2}$相关问题 更多 >
编程相关推荐