Debo mencionar primero que estoy usando SqlAlchemy a través de Flask-SqlAlchemy. No creo que esto afecte el problema, pero si lo hace, házmelo saber.SqlAlchemy no aceptará el valor datetime.datetime.now en una columna DateTime
Aquí es la parte relevante del mensaje de error que estoy recibiendo cuando se ejecuta la función create_all en 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'
Aquí es mi modelo:
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']
Puede alguien decir cómo Puedo hacer que esto funcione? También probé el siguiente modelo, pero eso tampoco funciona. Mismo error.
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']
¿Seguro que la columna 'last_updated' es el problema? ¿Podría ser la columna 'feed_data' (que es la columna 4 si comienzas a contar desde cero)? Después de todo, estás tratando de poner un diccionario (el resultado de 'feedparser.parse (...)' en una columna del tipo de Texto. – srgerg
bueno, esto no tiene nada que ver con la pregunta, ¿podrías avisarme? , de dónde empezar si quiero un diseño ORM simple. – user993563
Creo que debería usar sqlalchemy.func.now() en lugar de datetime.datetime.now() – utapyngo