SQLAlchemy可以';“t适应类型”;内置“函数”或“方法”;

SQLAlchemy可以';“t适应类型”;内置“函数”或“方法”;,sqlalchemy,Sqlalchemy,我正在使用带烧瓶的芹菜和SQLAlchemy将一些字符串存储到数据库中。一切正常,但当我创建数据库类时: class Locations(db.Model): id = db.Column('id', db.Integer, primary_key=True) data = db.Column('data', db.String(50)) def insert(): location="Madrid" l = Locations(id=id, data=loca

我正在使用带烧瓶的芹菜和SQLAlchemy将一些字符串存储到数据库中。一切正常,但当我创建数据库类时:

class Locations(db.Model):
    id = db.Column('id', db.Integer, primary_key=True)
    data = db.Column('data', db.String(50))

def insert():
    location="Madrid"
    l = Locations(id=id, data=location)
    db.session.add(l)
    db.session.commit()
当我访问url页面时,如果调用方法insert(),则会出现以下错误,我认为这与id有关:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'builtin_function_or_method' [SQL: 'INSERT INTO locations (id, data) VALUES (%(id)s, %(data)s)'] [parameters: {'id': <built-in function id>, 'data': 'Oslo'}] (Background on this error at: http://sqlalche.me/e/f405)
sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)无法调整类型“内置函数”或“方法”[SQL:“插入位置(id,数据)值(%(id)s,%(数据)s)][参数:{id':,'data':'Oslo'”(此错误的背景信息位于:http://sqlalche.me/e/f405)

摆脱“id”和“data”类型,一切都应该按预期进行

class Locations(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    data = db.Column(db.String(50))

def insert():
    location="Madrid"
    l = Locations(id=id, data=location) # You may want to remove id as well here as it will be autoincrement by default. 
   # So it can be l=Locations(data=location)
    db.session.add(l)
    db.session.commit()

在insert()方法中,id来自何处?如果“不知从何而来”,那么python中内置了一个id方法,这就是您正在尝试使用的方法。。。您忘记了id()方法的括号和参数。谢谢,这很奇怪。上一次我查看了它需要这些字段的文档。