Flask-SQLalchemy Dichiarative e MySQL Tipi di dati specifici
-
21-12-2019 - |
Domanda
Ho un DB MySQL già esistente con molte colonne definite con i tipi di colonna specifici di MySQL (mediumTint, Tinyint per citarne alcuni), e anche se il tipo di colonna appartiene a un tipo di dati SQL standard, a volte è dichiarato non firmato. .
Ora sto scrivendo un'app di pallone per fornire un'API per accedere a DB in vari modi. Usando Plain SQLalchemy, importerei specifiche tipi di dati definizioni da sqlalchemy.Dialects.mysql, come:
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)
.
Ma mi è stato detto di usare Flask-SQLalchemy, quindi sto dichiarando i miei tavoli come
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer**(???)**, primary_key=True)
.
Come posso dire a Flask-SQLalchemy che l'ID della colonna è un MySQL mediumTint e che non è firmato?Posso passare, come il primo argomento a "db.Column" una definizione di tipo di dati importata non da "db.something" ma da sqlalchemy.Dialects.mysql, e questa sarebbe una buona pratica (non mi sembra)?
Grazie;)
Soluzione
Qual è il problema con?
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)
.