Najpierw powiem, że używam SqlAlchemy przez Flask-SqlAlchemy. Nie sądzę, żeby miało to wpływ na sprawę, ale jeśli tak, proszę dać mi znać.SqlAlchemy nie zaakceptuje wartości datetime.datetime.now w kolumnie DateTime
Oto odpowiednia część komunikatu o błędzie dostaję po uruchomieniu funkcji create_all w sqlalchemy
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'
Oto mój model:
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']
Czy ktoś może mi powiedzieć jak Mogę to uruchomić? Próbowałem również następujący model, ale to również nie działa. Ten sam błąd.
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']
Czy jesteś pewien, że 'last_updated' kolumna jest problem? Czy może to być kolumna 'feed_data' (kolumna 4, jeśli zaczynasz odliczanie od zera)? Przecież próbujesz umieścić słownik (wynik 'feedparser.parse (...)' w kolumnie typu Tekst. – srgerg
cóż, to nie ma nic wspólnego z pytaniem, czy mógłbyś dać mi znać? , od czego zacząć, jeśli chcę prosty układ ORM – user993563
Myślę, że powinieneś używać sqlalchemy.func.now() zamiast datetime.datetime.now() – utapyngo