我正在使用 Flask 和 Flask SQLAlchemy 創建我的 sqllite 資料庫,該資料庫有一個包含多列的表。我已經創建了我的模型,但是一旦我運行該應用程式,它只會創建前 03 列?!!!
...
db = SQLAlchemy()
def setup_db(app):
db.app = app
db.init_app(app)
def db_drop_and_create_all():
db.drop_all()
db.create_all()
...
@dataclass
class ChurnModel(inheritedModels):
id = int
customerID = String
gender = String
SeniorCitizen: int
Partner: String
...
__tablename__ = 'churn'
id = Column(Integer().with_variant(Integer, "sqlite"), primary_key=True)
customerID = Column(String(255), nullable=False)
gender = Column(String(255))
SeniorCitizen: Column(Integer())
Partner: Column(String(255))
...
def get_churn(self):
return {
"id": self.id,
"customerID": self.customerID,
"gender": self.gender,
"SeniorCitizen": self.SeniorCitizen,
"Partner": self.Partner,
...
}
...
這是我在database.db被很多空值包圍的檔案中發現的:
TE TABLE churn (
id INTEGER NOT NULL,
"customerID" VARCHAR(255) NOT NULL,
gender VARCHAR(255),
PRIMARY KEY (id)
)
有什么解釋嗎?!
uj5u.com熱心網友回復:
查看代碼后,我覺得這是一個預期的行為,因為你定義的唯一列id,customerID和gender。也許您只是對如何使用型別提示感到困惑,或者您沒有注意這一點,僅此而已。
試試這個:
@dataclass
class ChurnModel(inheritedModels):
id: int
customerID: str
gender: str
SeniorCitizen: int
Partner: str
...
__tablename__ = 'churn'
id = Column(Integer().with_variant(Integer, "sqlite"), primary_key=True)
customerID = Column(String(255), nullable=False)
gender = Column(String(255))
SeniorCitizen= Column(Integer())
Partner= Column(String(255))
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/365941.html
標籤:烧瓶 sqlalchemy 烧瓶-sqlalchemy
上一篇:為什么燒瓶讀取另一個檔案?
