19

最初に、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']
4

4 に答える 4

6
last_updated = db.Column(db.DateTime, default=db.func.current_timestamp())

これはうまくいくと思います

于 2015-11-27T05:42:39.817 に答える
-9

あなたの行を見てください:

last_updated = db.Column(db.DateTime, default=datetime.datetime.now)

datetime.datetime.nowPython には属性がありません。ただし、pythonにdatetime.datetime.now() 関数があります。かっこのペアが欠けていました。

于 2012-04-24T16:39:13.420 に答える