Flask-SQLAlchemy声明性和MySQL特定的数据类型

dap*_*piu 4 python mysql database flask flask-sqlalchemy

我有一个已有的MySQL DB,其中有许多用MySQL特定的列类型(MEDIUMINT,TINYINT等)定义的列,即使该列类型属于标准SQL数据类型,有时也会声明为无符号。

现在,我正在编写一个Flask应用程序,以提供通过各种方式访问​​数据库的API。使用普通的SQLAlchemy,我将从sqlalchemy.dialects.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)
Run Code Online (Sandbox Code Playgroud)

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

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

class User(db.Model):
    id = db.Column(db.Integer**(???)**, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

如何告诉Flask-SQLAlchemy列ID是MySQL MEDIUMINT,并且是未签名的?我可以将不是从“ db.Something”而是从sqlalchemy.dialects.mysql导入的数据类型定义作为“ db.Column”的第一个参数传递,这将是一个好习惯(对我来说似乎不是)?

谢谢 ;)

Mik*_*ike 7

怎么了

from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy import Column
from sqlalchemy.dialects.mysql import MEDIUMINT, TINYINT

db = SQLAlchemy(app)

class User(db.Model):
    id = Column(MEDIUMINT(unsigned=True), primary_key=True)
Run Code Online (Sandbox Code Playgroud)