sqlalchemy ORM:如何给出一些低级规范?

Det*_*ant 4 mysql sqlalchemy

我在sqlalchemy中使用ORM .实际情况是我也使用MySQL数据库,我想设置MySQL必须适合我的项目的一些表配置.(例如mysql_engine='InnoDB',mysql_charset='utf8'等等)

我知道使用SA提供的SQL Expression有一种方法.但我更喜欢使用ORM界面.有任何想法吗?

PS:如何使用'class mytable'表单(使用ORM而不是SQL Expression maker)来产生相同的效果

Gry*_*ius 11

您可以在sqlalchemy中的表定义中传递mysql选项.

http://www.sqlalchemy.org/docs/dialects/mysql.html#storage-engines

Table('mytable', metadata,
  Column('data', String(32)),
  mysql_engine='InnoDB',
  mysql_charset='utf8'
 )
Run Code Online (Sandbox Code Playgroud)

编辑://

如果使用声明层,可以使用' table_args ':

class Something(Base):
    __tablename__ = 'something'
    __table_args__ = {'mysql_charset': 'utf8', 'mysql_engine': 'InnoDB'}
Run Code Online (Sandbox Code Playgroud)

http://www.sqlalchemy.org/docs/05/reference/ext/declarative.html#table-configuration