我首先要提到的是,我正在通过 Flask-SqlAlchemy 使用 SqlAlchemy。我不认为这会影响问题,但如果会影响,请告诉我。
这是我在 SqlAlchemy 中运行 create_all 函数时收到的错误消息的相关部分
InterfaceError: (InterfaceError) Error binding parameter 4 - probably unsupported type. u'INSERT INTO podcasts (feed_url, title, url, last_updated, feed_data) VALUES (?, ?, ?, ?, ?)' (u'http://example.com/feed', u'Podcast Show Title', u'http://example.com', '2012-04-17 20:28:49.117000'
这是我的模型:
class Podcast(db.Model):
import datetime
__tablename__ = 'podcasts'
id = db.Column(db.Integer, primary_key=True)
feed_url = db.Column(db.String(150), unique=True)
title = db.Column(db.String(200))
url = db.Column(db.String(150))
last_updated = db.Column(db.DateTime, default=datetime.datetime.now)
feed_data = db.Column(db.Text)
def __init__(self, feed_url):
import feedparser
self.feed_url = feed_url
self.feed_data = feedparser.parse(self.feed_url)
self.title = self.feed_data['feed']['title']
self.url = self.feed_data['feed']['link']
有人可以告诉我如何让它发挥作用吗?我也尝试过以下模型,但这也不起作用。同样的错误。
class Podcast(db.Model):
import datetime
__tablename__ = 'podcasts'
id = db.Column(db.Integer, primary_key=True)
feed_url = db.Column(db.String(150), unique=True)
title = db.Column(db.String(200))
url = db.Column(db.String(150))
last_updated = db.Column(db.DateTime)
feed_data = db.Column(db.Text)
def __init__(self, feed_url):
import feedparser
self.feed_url = feed_url
self.feed_data = feedparser.parse(self.feed_url)
self.last_updated = datetime.datetime.now()
self.title = self.feed_data['feed']['title']
self.url = self.feed_data['feed']['link']
尝试使用
datetime.datetime.utcnow()
。这对我有用。
last_updated = db.Column(db.DateTime, default=db.func.current_timestamp())
我认为这会起作用。
设置类的导入。
from datetime import datetime
last_updated = db.Column(db.DateTime, default=datetime.now())
或
import datetime
last_updated = db.Column(db.DateTime, default=datetime.datetime.now())
我做了这个
看看你的线条:
last_updated = db.Column(db.DateTime, default=datetime.datetime.now)
Python 中没有
datetime.datetime.now
属性。然而,Python 中有 is datetime.datetime.now()
function。你只是少了一对括号。