SqlAlchemy nicht akzeptieren datetime.datetime.jetzt den Wert in einem DateTime-Spalte
Sollte ich zuerst erwähnen, dass ich mit SqlAlchemy durch Flask-SqlAlchemy. Ich glaube nicht, dass dies wirkt sich auf das Problem, aber wenn es funktioniert, lassen Sie es mich bitte wissen.
Hier den relevanten Teil der Fehlermeldung, die ich erhalte beim ausführen des create_all Funktion in 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'
Hier ist mein Modell:
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']
Kann mir jemand sagen wie bekomme ich diese zu arbeiten? Ich hab auch schon versucht das folgende Modell, der aber auch nicht funktioniert. Gleichen Fehler.
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']
last_updated
Spalte ist das problem? Könnte es sein, das feed_data
Spalte (die Spalte 4, wenn Sie anfangen zu zählen ab null)? Nachdem alle, die Sie versuchen, ein Wörterbuch (das Ergebnis feedparser.parse(...)
in eine Spalte des Typs Text.gut, das hat nichts mit der Frage zu tun, könnten Sie bitte lassen Sie mich wissen, wo, um loszulegen, wenn ich will, eine einfache ORM-layout.
Ich denke, Sie sollten mit sqlalchemy.func.now() anstelle von datetime.datetime.jetzt()
InformationsquelleAutor Kylee | 2012-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
datetime.datetime.utcnow()
. Dies funktioniert für mich.InformationsquelleAutor Bijan
Ich denke, das wird funktionieren,
InformationsquelleAutor Savad KP
Stellen Sie den import aus der Klasse.
oder
Habe ich diese
InformationsquelleAutor Leonardo Ramos
Schauen Sie auf Ihre Linie:
Gibt es keine
datetime.datetime.now
Attribut in python. Allerdings gibt es ist einedatetime.datetime.now()
Funktion in python. Sie wurden nur fehlen ein paar Klammern.gibt die Funktion selbst, ohne Berufung; dies gewünscht Verhalten. Wenn Sie die Funktion aufgerufen wurde, würden Sie Sie abrufen, nur ein einziges mal und verwenden, die als Standard, die ein anderes Verhalten und nicht erwünscht.
InformationsquelleAutor adamek