Flask+SQLAlchemy建表报错:TypeError: column()不识别default参数
解决方法
问题出在拼写错误:你写的是db.column(小写字母c),但Flask-SQLAlchemy中用于定义模型字段的正确方法是db.Column(大写字母C)。
db.column是SQLAlchemy的底层低级函数,它不支持default这类高层参数;而db.Column是Flask-SQLAlchemy封装的、专门用于ORM模型字段定义的接口,才支持default、primary_key等常用参数。
修正后的代码:
from . import db from flask_login import UserMixin from sqlalchemy.sql import func class Note(db.Model): id = db.Column(db.Integer, primary_key=True) data = db.Column(db.String(10000)) # 修正为大写C的db.Column date = db.Column(db.DateTime(timezone=True), default=func.now()) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(150), unique=True) password = db.Column(db.String(150)) first_name = db.Column(db.String(150)) notes = db.relationship('Note')
另外,这个问题是拼写错误导致的,和Flask本身的安装状态无关,所以卸载重装Flask无法解决问题。
内容的提问来源于stack exchange,提问作者Rok Kužner
相关产品推荐
相关产品推荐

