FlaskSQLAlchemy声明性和MySQL特定的数据类型

2024-06-16 13:25:56 发布

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

我有一个已经存在的MySQL数据库,其中有许多列是用MySQL特定的列类型定义的(MEDIUMINT、TINYINT等等),即使该列类型属于标准SQL数据类型,有时也会声明为unsigned。

现在我正在编写一个Flask应用程序来提供一个API,以各种方式访问DB。 使用普通的SQLAlchemy,我将从SQLAlchemy.diactals.mysql导入特定的数据类型定义,如:

from sqlalchemy import Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.dialects.mysql import MEDIUMINT, TINYINT

Base = declarative_base()

class User(Base):
    id = Column(MEDIUMINT(unsigned=True), primary_key=True)

但是我被告知要使用Flask SQLAlchemy,所以我声明我的表如下

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer**(???)**, primary_key=True)

我怎样才能告诉Flask SQLAlchemy列id是MySQL MEDIUMINT,而它是无符号的?作为“db.Column”的第一个参数,我是否可以传递一个不是从“db.Something”导入的数据类型定义,而是从sqlalchemy.diactals.mysql导入的,这是一个很好的实践(在我看来不是这样的)?

谢谢;)


Tags: fromimportidtrueflaskdbsqlalchemymysql